こんにちは、Python でクラスの継承について検索していたところ、複数の継承もサポートしていることがわかりましたが、どういうわけか問題があるようです :o 例を見つけました:
class ParentOne:
def __init__(self):
print "Parent One says: Hello my child!"
self.i = 1
def methodOne(self):
print self.i
class ParentTwo:
def __init__(self):
print "Parent Two says: Hello my child"
class Child(ParentOne, ParentTwo):
def __init__(self):
print "Child Says: hello"
A=Child()
出力
Child Says: hello
child が ParentOne と ParentTwo を継承するとき、これらのクラスが初期化されないのはなぜですか? 継承クラス Child 内でそれらを手動で初期化する必要がありますか? 継承のみを使用して出力されたすべてのメッセージを確認できる正しい例は何ですか?
実際には、それよりも少し複雑です。メソッド解決の順序は、super() への協調呼び出しをサポートするために動的に変更されます。このアプローチは、他のいくつかの多重継承言語では call-next-method として知られており、単一継承言語に見られる super 呼び出しよりも強力です。
手動で初期化する必要がある場合、どうすればより強力になりますか? これらすべての質問を申し訳ありません。前もって感謝します。