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)
...
저는 최근에 파이썬과 wxPython을 배우기 시작했습니다. 위 코드는 http://www.zetcode.com/wxpython/menustoolbars/입니다. self.shst 변수에 머리를 쓰려고합니다. 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로 액세스 할 수 없습니다입니다, 나는 디렉토리 (t)의 출력에 Y가 표시되지 않습니다 답의 I는 다음의 시험을했다. Test 클래스의 모든 함수에 self.y 액세스 할 수 없습니까?
내 수정 사항에 댓글을 달 수 있습니까? –
당신은'y' 속성을 생성하는't.func()'를 호출하지 않았습니다. – tehwalrus
아, 이제 알겠습니다. 파이썬의 위험한 버릇처럼 보입니다. 고마워요! –