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怪癖,谢谢! –