子类:调用超类方法,正确样式



假设y是x的子类。对 x 中方法的后续调用的哪个表达式是正确的样式?有语义上的差异吗?

class y(x):
def __init__(self,text,s):
x.__init__(self,text)
self.something = self.superclassmethod(s) #or
self.something = y.superclassmethod(self,s)

避免硬编码父类,这将不必要地阻碍使用使用多重继承的Y子类的努力。出于同样的原因,请使用super而不是硬编码X

class Y(X):
def __init__(self, text, s):
super().__init__(text)
self.something = self.superclassmethod(s)

如果您决定在Y本身中覆盖superclassmethod,这也将继续正常工作。

最新更新