我想初始化一个类,然后调用初始化期间设置的属性,但不创建另一个实例。作为测试示例:在不创建实例的情况下调用类属性
class t1:
def __init__(self, skipInit=False):
if not skipInit:
print 'Initialized'
self.var = 123456
else:
print 'Not Initialized'
def returnVar(self):
return self.var
class t2:
def getVar(self):
print t1.returnVar(t1)
我想t1()
初始化T1,后来,从T2访问VAR,与t2.getVar(t2)
或T2内的一些其他方式。很明显,上面的代码不起作用,我很难理解为什么。
实际上这些类都在wxPython程序中。有一个框架 - >笔记本 - >面板 - >菜单栏层次结构,全部在单独的文件中。在Panel初始化期间,我设置了许多变量,并尝试从GUI上的某个菜单项访问这些变量。此时面板将被初始化并显示,这就是我添加skipInit开关的原因。任何想法如何做到这一点?
那么,这没有多大意义。你是否知道类和实例之间的区别? 'self.var'是一个实例属性,不创建它有时会打败一个类的目的。也许一个具体的例子会更好地解释你想要的东西。看来你可以只写一个函数来完成初始化,你只需要调用它一次... – 2011-04-19 22:03:39
对不起,如果我不清楚。实例'self.var'必须在初始化过程中设置,稍后访问时不需要再次初始化。总之,我不能修改上面的't1'。那么如何在不初始化t1的情况下访问实例't1.var'? – 2011-04-19 22:27:16