在Python中实现标准__new__的正确方法

时间:2012-07-04 14:50:50

标签: python

在Python中实现__new__的标准行为的正确方法是什么,以便不破坏任何功能?

我用过

class Test:
    def __new__(cls, *args, **kwargs):
        return object.__new__(cls, *args, **kwargs)

t=Test()

在某些Python版本上会抛出DepreciationWarnings。在互联网上,我看到了super()type()的内容。有什么区别,哪些是首选的?

1 个答案:

答案 0 :(得分:4)

你应该写

return super(Test, cls).__new__(cls, *args, **kwargs)

这是the documentation(和the same for 2.x)推荐的。

使用super的原因一如既往地应对继承树线性化;你不确定相应的超类是object,所以你应该总是使用super