Python 版本:“'2.7.3(默认,2013 年 4 月 10 日,06:20:15)\n[GCC 4.6.3]'”
我有这个:
>>> class testclass1(object):
... pass
...
>>> class testclass2(object):
... def __init__(self,param):
... pass
...
>>> a = object.__new__(testclass1, 56)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object.__new__() takes no parameters
>>> b = object.__new__(testclass2, 56)
>>> b
<__main__.testclass2 object at 0x276a5d0>
更有趣一些!与上面 testclass1 的结果进行比较。
>>> class testclass3(object):
... def __init__(self):
... pass
...
>>> c = object.__new__(testclass3, 56)
>>> c
<__main__.testclass3 object at 0x276a790>
>>> c1 = object.__new__(testclass3)
>>> c1
<__main__.testclass3 object at 0x276a810>
我的问题是在这两种情况下(不是为什么)表现不同?object__new__
另请注意,在第一种情况下,该错误有点误导,因为在第二种情况下object.__new__
,最终确实会引起争论!。