3

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

我用了

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

t=Test()

在某些 Python 版本上会引发 DepreciationWarnings。在互联网上,我看到了一些带有super()或带有type(). 有什么区别,哪个是首选?

4

1 回答 1

5

你应该写

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

这是文档推荐的对于 2.x 也是如此)。

使用的原因super是一如既往地处理继承树线性化;你不确定合适的超类是object什么,所以你应该总是使用super.

于 2012-07-04T15:29:25.690 回答