python の多重継承でのコンストラクタの呼び出しどうやってやればいいのだろうか...
例えば,単なる継承の場合には,
class Parent (object): """ """ __pVar = 0 def __init__ (self, num): """ """ self.__pVar = num def __del__ (self): """ """ pass def GetParentVar (self): """ """ return self.__pVar
class Child (Parent): """ """ __cVar = 0 def __init__ (self, num1, num2): """ """ self.__cVar = num1 super(Child, self).__init__(num2) def __del__ (self): """ """ pass def dumper (self): """ """ print "%d %d" % (self.__cVar, self.GetParentVar()) def main(): child = Child(100, 200) child.dumper()
#-----------------------------------------if __name__ == "__main__": main()
とすれば,なんとなく動くんだけど,
Child が Parent と Parent と似たような GrandParent も継承した場合に,
両方のコンストラクタを呼び出す方法がなんともわかりません...
継承しているので,Child のコンストラクタが呼び出された時点で,
Parent と GrandParent が生成されているから,
単にメソッド経由でメンバの値を設定・取得すれば動くのですが,
なんとなくコンストラクタ経由でメンバの初期化をしたい気分です.
そもそもオブジェクト指向にあまり強くないので発想自体が
間違っているのかもしれないけど,少し気になっている今日この頃.
0 件のコメント:
コメントを投稿