2016-10-12 3 views
0

私はクラスC1を持ち、C1のインスタンスを変数として持つ別のクラスC2を持っています。 C2でC1の変数を取得する場合は、self.c1.variableを使用する必要があります。私はそれを直接得ることができるようにC2のC1の変数の参照を取得するにはどうしたらいいですか?Pythonで別のクラスのあるクラスの1つの変数の参照を取得するには?

あなたはそれを達成するために @propertyデコレータを使用することができます
class C1(): 
    def __init__(self,a): 
     self.variable = a 

class C2(): 
    def __init__(self, c1): 
     self.c1 = c1 

    def print_variable(self): 
     print self.c1.variable 


c1 = C1(1) 
c2 = C2(c1) 
c2.print_variable() 
+0

あなたが正確に何をしたいの詳細を説明することができます何をする? – trahane

+0

@trahane私はちょうどc1.variableを得るために短いコードを使いたいと思う。私がC2を含む第3のクラスC3を持っているなら、私はself.c2.c1.variableを介してC3のc1の変数にアクセスしなければなりません。この変数を頻繁に使用したい場合、これは良い方法ではありません。 –

答えて

0

class C2(): 
    def __init__(self, c1): 
     self.c1 = c1 

    @property 
    def variable(self): 
     return self.c1.variable 

あなたはC2インスタンスにvariableを変更したい場合:

@variable.setter 
    def variable(self, value): 
     self.c1.variable = value 
+0

ありがとうございます。それはまさに私が欲しいものです。 –

関連する問題