私のコードはこのようなもので、super()を使用してPapaの機能を継承したいのですが、どうすればよいですか?
class Mama(object):
def __init__(self):
self.name = 'Mama'
def feature(self):
print "%s have big eyes" % self.name
class Papa(object):
def __init__(self):
self.name = 'Papa'
def feature(self):
print "%s have fierce beards" % self.name
class Offspring(Mama,Papa):
def __init__(self, name):
self.name = name
def feature(self):
super(Offspring, self).feature()
offspring = Offspring('Tommy')
offspring.feature()
# This will result "Tommy have big eyes"
Papa
最初から継承することにより、MRO(メソッド解決順序)を変更できます。
class Offspring(Papa, Mama):
別の方法は、MROをスキップして、(バインドされていない)メソッドをPapa
明示的に呼び出すことです。
class Offspring(Mama, Papa):
def __init__(self, name):
self.name = name
def feature(self):
Papa.feature(self)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加