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
提交
取消