1

私は一種の愚かな質問があります:

あるクラスのインスタンス変数を別のクラスで使用する方法はありますか?継承がそれを行う方法かもしれないと思いますが、方法がわかりません:(

例えば:

class A():
    def __init__(self):
        self.var1 = 12
        self.var2 = C()

    def start(self):
        self.var1=11
        B()

class B():

    def doSomething(self):
        varXX = "  here I would like to have objet self.var2 from A()"         

class C():
    def makeUI(self):
        something

ヘルプのためのthx

4

2 に答える 2

3
class A():
    def __init__(self):
        self.var1 = 12
        self.var2 = C()

    def start(self):
        self.var1=11
        B(self)             # pass this instance into the initialisation of B

class B():
    def __init__(self, a):
        self.a = a          # save reference to the A() instance

    def doSomething(self):
        varXX = self.a.var2 
于 2012-10-18T12:20:05.317 に答える
0

あるクラスのインスタンス変数を別のクラスで使用する方法はありますか?いいえできません。インスタンス変数はオブジェクト固有であり、クラス固有ではありません。クラスのオブジェクトにアクセスする必要があるか、設計上の問題があります。おそらくそれらをクラス変数にする必要があります。

これらの変数がインスタンス固有でない場合は、クラス変数にして次のようにアクセスします

>>> class A():
    _init_done = False
    def __init__(self):
        if not A._init_done:
            A.var1 = 12
            A.var2 = C()
            A._init_done = True
def start(self):
    A.var1=11
    B()            
>>> class B():    
    def doSomething(self):
        print A.var1           
>>> class C():
    def makeUI(self):
        something            
>>> x = A()
>>> y = B()
>>> y.doSomething()
12
>>> x.start()
>>> y.doSomething()
11
于 2012-10-18T12:24:53.697 に答える