2017-12-26 8 views
0

具体的には、ここにはclass Aがあり、中間結果を格納するメンバーvarを持っています。私がしたいのは、A()のインスタンスをメンバーとして持っていますが、他のコード部分を変更することなくまだvarにアクセスしているラッパーを作成しようとしています。変数を参照や値のフックのように振る舞わせる方法は?

擬似コード:実行中に、それが変わるよう

Class A: 
    def __init__(self): 
     self.var=0 
     .... 

Class B: 
    def __init__(self): 
     self.submod=A() 

instance_b = B() 

instance_b.varを作るには、instance_b.submod.varを指します。

答えて

0

私は、これは `var`が書き込み可能である必要がなければならないあなた

Class B: 
     def __init__(self): 
      self.submod = A() 

     @property  
     def var(self): 
      return self.submod.var 
+1

は適切な' @のvar.setter'と '@のvar.deleter'メソッドを追加するために働くことができると思います。 – ShadowRanger

+0

Ecellent!私はpythonのドキュメントをチェックし、私はずっとそのデフレーターを無視していることに気づきました。そのようなエレガントなソリューションをありがとうと私にこれらのことを思い出させる。 –

関連する問題