子类定义了一个与父类函数名相同的方法,调用父类该方法时,参数一定要加上self

父类定义了一个方法,该方法除了self参数外,无其他参数。

子类定义了一个与父类函数名相同的方法,调用父类该方法时,参数一定要加上self,否则,会报如下错:

unbound method method() must be called with Super instance as first argument (got nothing instead)

正确代码如下所示:

class Super: #定义一个父类

def method(self):

print('in the Super.method')

class Sub(Super):#定义一个子类

def method(self): #该函数名与父类相同

print('stating Sub.method')

Super.method(self) #参数传入不能空

print('ending Sub.method')

if __name__ == '__main__':

x = Super()

x.method()

y = Sub()

y.method()

你可能感兴趣的:(子类定义了一个与父类函数名相同的方法,调用父类该方法时,参数一定要加上self)