要は親のメソッドは完全にオーバーライドしたいけど、親の親のメソッドは使いたい場合
class Grandparent:
def name(self, text):
return text + '>サンデーサイレンス'
class Parent(Grandparent):
def name(self, text):
return super().name(text + '>ステイゴールド')
class My(Parent):
def name(self, text):
return super().name(text)
name = My().name('ゴールドシップ')
print(name)
結果は当然
ゴールドシップ>ステイゴールド>サンデーサイレンス
親を飛ばして、親の親を呼びたい場合
class Grandparent:
def name(self, text):
return text + '>サンデーサイレンス'
class Parent(Grandparent):
def name(self, text):
return super().name(text + '>ステイゴールド')
class My(Parent):
def name(self, text):
return super(Parent, self).name(text)
name = My().name('ゴールドシップ')
print(name)
結果
ゴールドシップ>サンデーサイレンス
キモはここです
return super(Parent, self).name(text)