python中的Init方法, new 方法 call 方法

匿名 (未验证) 提交于 2019-12-02 22:11:45
new 方法实现单列模式思考
class Single:     _single = None     _single_only = None     def __init__(self, value):         self.v = value         print(self.v)      def __new__(cls, *args, **kwargs):         if Single._single:             return Single._single         else:             Single._single = super(Single, cls).__new__(cls, *args, **kwargs)             print("只执行一次")             return Single._single  s2 = Single(2) #结果报错     Single._single = super(Single, cls).__new__(cls, *args, **kwargs) TypeError: object() takes no parameters
  • 报错显示 基类 object() 不接受额外参数
.......     def __new__(cls, *args, **kwargs):         if Single._single:             return Single._single         else:             Single._single = super(Single, cls).__new__(cls)  #这样继承就好了             print("只执行一次")             return Single._single
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!