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キーワードをプレフィックスとして付ける必要があるのですか?
私が読んだところによると、selfキーワードは__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にアクセスできず、dir(t)からの出力にyが表示されません。Self.yは、Testクラスのすべての関数にアクセスできるべきではありませんか?