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。上面的代码片段来自http://www.zetcode.com/wxpython/menustoolbars/。我试图了解self.shst变量。为什么必须在它前面加上 self 关键字?
根据我的阅读,在 __init__ 方法的上下文中使用 self 关键字来“声明”实例变量,但作者在 __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,并且在 dir(t) 的输出中看不到 y。测试类中的每个函数不应该可以访问 self.y 吗?