class Animal(object): def run(self): print('Animal run') class Dog(Animal): def run(self): # super().run() # Animal.run(self) //这个好像可以 # super(Animal,self).run() print('Dog run') d = Dog() d.run()
执行d.run() 如何即输出
'Animal run'
又输出
'Dog run'
在其他语言中,往往可以直接调用super.method(),但是Python不知道该怎么实现?或者说Python不推荐在重载父类方法时调用super方法?
我试了下,好像可以在重写父类方法的时候通过
super(SuperClass,self).overrideMethod()
这样的方式来实现,不知道这样是否正确?
-----------------------------------------------------分割线------------------------------------------------
谢谢@串猪神的答案:
class Animal(object): def run(self): print('Animal run') class Dog(Animal): def run(self): super().run() print('Dog run') d = Dog() d.run >>>> Animal run Dog run
串猪神
相关分类