Python __new__没有调用另一个类的__new__的版本?

时间:2014-10-19 22:02:47

标签: python metaclass dynamic-class-creation

在Python中使用__new__的示例是什么?在__new__的正文中你返回调用其他内容的结果(base,meta或否则)类__new__的版本,但你执行返回目标类的已分配实例,以便调用__init__

我猜这是(并且应该)非常罕见,但我很好奇是否有这个用例的例子。我尝试了tuple __new__的{​​{1}}实现的Python源代码以及type的实现,但似乎并不是很容易在线查​​找。

1 个答案:

答案 0 :(得分:1)

你不能,这不是你可以在Python方面做的事情。无操作__new__方法会调用object.__new__(cls),它会返回类cls的裸实例。

>>> class A:
...     def __new__(cls):
...         return object.__new__(cls)
... 
>>> A()
<__main__.A object at 0x7f9e951577d0>