class?Animal(object):
????def?run(self):
????????print('Animal?run')
class?Dog(Animal):
????def?run(self):
???? #?super().run()
#?Animal.run(self)?//這個(gè)好像可以
????????#?super(Animal,self).run()
????????print('Dog?run')
d?=?Dog()
d.run()執(zhí)行d.run() ?如何即輸出'Animal?run'又輸出'Dog?run'在其他語(yǔ)言中,往往可以直接調(diào)用super.method(),但是Python不知道該怎么實(shí)現(xiàn)?或者說(shuō)Python不推薦在重載父類(lèi)方法時(shí)調(diào)用super方法?我試了下,好像可以在重寫(xiě)父類(lèi)方法的時(shí)候通過(guò)?super(SuperClass,self).overrideMethod()這樣的方式來(lái)實(shí)現(xiàn),不知道這樣是否正確?-----------------------------------------------------分割線------------------------------------------------謝謝@串豬神的答案: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貢獻(xiàn)155條經(jīng)驗(yàn) 獲得超200個(gè)贊
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方法的,調(diào)用的方式如上所示,super().方法名 這樣就可以調(diào)用父類(lèi)的方法了。
添加回答
舉報(bào)
0/150
提交
取消