假设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
,这也将继续正常工作。