我想初始化一個類,然後調用初始化期間設置的屬性,但不創建另一個實例。作爲測試示例:在不創建實例的情況下調用類屬性
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