猿问

Python中如何调用super方法

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



qq_苦瓜_3
浏览 1495回答 1
1回答

串猪神

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 = frizzlepython里面也有super方法的,调用的方式如上所示,super().方法名 这样就可以调用父类的方法了。
随时随地看视频慕课网APP

相关分类

Python
我要回答