class Example(wx.Frame):
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.InitUI()
def InitUI(self):
menubar = wx.MenuBar()
fileMenu = wx.Menu()
viewMenu = wx.Menu()
self.shst = viewMenu.Append(wx.ID_ANY, 'Show statubar',
'Show Statusbar', kind=wx.ITEM_CHECK)
...
我最近開始學習python和wxPython。上面的代碼snipppet是從http://www.zetcode.com/wxpython/menustoolbars/。 我試圖讓我的頭在self.shst變量。爲什麼需要用self關鍵字加前綴?函數體中的Python變量「聲明」
從我讀,自我關鍵字在__init__方法上下文中使用,以「聲明」的實例變量,但筆者在__init__
編輯 在光無SHST聲明你的答案我做了如下試驗:
class Test(object):
def __init__(self):
self.x = 20
def func(self):
self.y = 10
def getVal(self):
return self.y
def main():
t = Test()
print t.getVal()
print dir(t)
if __name__ == '__main__':
main()
我無法在GETVAL()函數來訪問self.y,我沒有看到的Y的輸出目錄(T)。 Test class中的每個函數都不應該self.y可訪問嗎?
您可以評論我的編輯嗎? –
你還沒有調用't.func()'來創建'y'屬性。 – tehwalrus
啊,我現在明白了。看起來像一個危險的python怪癖,謝謝! –