Python中类如何实现禁止实例化

Python中类如何实现禁止实例化

Python中类如何实现禁止实例化呢?网上搜到的都是如何保证单例化

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
liuyubobobo 2023-09-26 06:18:53

python 的面向对象的功能本身就是缺失的,比如 Python 中其实并没有真正的私有成员变量或者成员函数。


但与此同时,因为 python 不是“只能”面向对象的(这是和 java 最大的不同),所以在不需要实例化一个对象的时候,就不应该将其包装成一个类。直接将其包装成一个函数即可。


数学类是一个典型的例子。我们不用实例化一个数学对象。一个典型的 python 的包含数学相关工具的包就是这个样子的(是一对函数的集合):https://github.com/google/grumpy/blob/master/lib/math.py


继续加油!:)

  • 提问者 begintoend #1

    https://img1.sycdn.imooc.com//climg/6512788c09c8ccce05220325.jpg

    老师明白了,我也觉得直接可以写个函数,如果是类的话,我在new方法里写报错,这样可以吗

    2023-09-26 14:23:01
  • liuyubobobo 回复 提问者 begintoend #2

    可以。但是对于 python 来说,正确的解决方案就是不用类。


    你这样做相当于提供了用户一个选择——你可以实例化。但是用户这样选择以后,却只能报错。这就像你在 app 中设计了一个按钮,但是用户点击按钮却告诉用户你不应该点击这个按钮。如果是这样的话,这个按钮就不应该存在。


    继续加油!:)

    2023-09-26 15:39:27
  • 提问者 begintoend 回复 liuyubobobo #3

    谢谢bobo老师:)

    2023-09-26 22:07:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2583    人
  • 解答问题       1082    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师