修改
我实际上打电话给object.__new__(cls)
,我没有意识到通过这个我构建了一个类cls的对象!谢谢你指出这一点。
原始问题
文档说
如果新()没有返回 cls的实例,然后是新的 实例的 init ()方法不会 被调用。
但是,当我从object.__new__()
返回cls.__new__()
时,仍然会调用__init__()
。我不会认为对象的实例有资格作为cls的实例。我错过了什么?
答案 0 :(得分:3)
无法重现您的观察结果:
>>> class cls(object):
... def __new__(cls):
... return object.__new__(object)
... def __init__(self):
... print 'in __init__'
...
>>> x = cls()
>>>
如您所见,cls.__init__
未执行。
如何1>}(和btw,为什么是你? - )。