我有一个愚蠢的问题:
有没有办法在另一个类中使用一个类的实例变量? 我想继承可能是这样做的方法,但我不知道如何:(
例如:
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
请求帮助
答案 0 :(得分: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
答案 1 :(得分:0)
有没有办法在另一个类中使用一个类的实例变量?不,你不能。实例变量是特定于对象的,而不是特定于类的。要么您需要访问Class的对象,要么您有设计问题。你可能需要让它们成为类变量。
如果这些变量不是特定于实例的,请将它们设为类变量并按如下方式进行访问
>>> 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