Python 获取变量
我有一个愚蠢的问题:Python 获取变量,python,Python,我有一个愚蠢的问题: 有没有办法在另一个类中使用一个类中的实例变量? 我想继承可能是一种方式,但我不知道怎么做:( 例如: class A(): def __init__(self): self.var1 = 12 self.var2 = C() def start(self): self.var1=11 B() class B(): def doSomething(self): var
有没有办法在另一个类中使用一个类中的实例变量? 我想继承可能是一种方式,但我不知道怎么做:( 例如:
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帮助信息有没有办法在另一个类中使用一个类中的实例变量?没有。实例变量是特定于对象的,而不是特定于类的。要么您需要访问该类的对象,要么您有设计问题。您可能需要将它们设置为类变量
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
如果这些变量不是特定于实例的,则按如下方式将它们设置为类变量和访问
>>> 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
我认为你应该尝试改进这个问题。这是一个很奇怪的概念。每次我创建
a()
的实例时,a.var2
都会更新为C()的新实例
。不确定你会用它做什么for@gnibbler:我刚刚扩展了使用类变量的概念。如果您不想创建新实例(),您可以轻松添加一个标志来检查首次初始化。我已更新了答案