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

谢谢帮助

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 回答