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
1 回答
已采纳
串猪神
TA贡献155条经验 获得超200个赞
class Foo(): def __init__(self, frob, frotz) self.frobnicate = frob self.frotz = frotz class Bar(Foo): def __init__(self, frob, frizzle) super().__init__(frob, 34) self.frazzle = frizzle
python里面也有super方法的,调用的方式如上所示,super().方法名 这样就可以调用父类的方法了。
添加回答
举报
0/150
提交
取消