在Python中实现__new__
的标准行为的正确方法是什么,以便不破坏任何功能?
我用过
class Test:
def __new__(cls, *args, **kwargs):
return object.__new__(cls, *args, **kwargs)
t=Test()
在某些Python版本上会抛出DepreciationWarnings。在互联网上,我看到了super()
或type()
的内容。有什么区别,哪些是首选的?
答案 0 :(得分:4)
你应该写
return super(Test, cls).__new__(cls, *args, **kwargs)
这是the documentation(和the same for 2.x)推荐的。
使用super
的原因一如既往地应对继承树线性化;你不确定相应的超类是object
,所以你应该总是使用super
。