为什么我在别人的代码中会遇到一些'object'?



我在互联网上的某个地方找到的这段代码:

class Superclass(object):
    def __init__(self):
        print ('SuperClass: Do something')
class Subclass(Superclass):
    def __init__(self):
        super(Subclass, self).__init__()
        print ('SubClass: Do something else')
test = Subclass()

因此,在我看来,"类超类(对象)"中的"对象"是不必要的。好吧,我可以删除它,该程序也可以正常工作。

例如,我们可以在 Python 的观察者模式中看到相同的内容:

http://en.wikipedia.org/wiki/Observer_pattern

您能否评论一下这个"对象"是什么以及它在这里的用途。

在 Python2 中,声明一个类派生自 object 是使该类成为新样式类所必需的。 否则,它是一个经典类。 super只能与新样式类一起正常工作,因此在 Python2 中,Superclass必须从 object 派生,Subclass中的super调用才能正常工作。

在 Python3 中,所有类都是新样式的。因此,没有必要使用object

相关内容

最新更新