为什么我会遇到一些'对象'在其他人的代码?

时间:2014-12-14 19:43:13

标签: python

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

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()

因此,在我看来,'类Superclass(object)'中的'object'是不必要的。好吧,我可以删除它,程序运行正常。

我们可以在Python的观察者模式中看到相同的例子:

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

你能评论这个'对象'是什么以及它的用途。

1 个答案:

答案 0 :(得分:1)

在Python2中,声明一个派生自object的类是制作类a new-style class所必需的。否则,它是一个经典的课程。 super仅适用于新式类,因此在Python2中,Superclass必须从object派生,才能使super中的Subclass调用生效。

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