2016-10-12 6 views
0

Ich habe eine Klasse C1 und eine andere Klasse C2, die eine Instanz von C1 als eine Variable nimmt. Wenn ich die Variable von C1 in C2 bekommen möchte, muss ich self.c1.variable verwenden. Wie kann ich eine Referenz der Variablen von C1 in C2 bekommen, so dass ich sie direkt bekommen kann?Wie bekomme ich die Referenz einer Variablen einer Klasse in einer anderen Klasse in Python?

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

können Sie erklären, mehr über das, was Sie genau wollen machen? – trahane

+0

@trahane Ich möchte nur einen kürzeren Code verwenden, um c1.variable zu erhalten. Wenn ich die dritte Klasse C3 habe, die C2 enthält, muss ich auf c1s Variable in C3 über self.c2.c1.variable zugreifen. Das ist kein guter Weg, wenn ich diese Variable häufig verwenden möchte. –

Antwort

0

Sie @property Dekorateur das erreichen verwenden können:

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

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

Im Fall, dass Sie die variable in C2-Instanz ändern:

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

Danke. Genau das möchte ich. –

Verwandte Themen