我在互联网上的某个地方找到的这段代码:
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
。