我正在閱讀關於wxPython的流行發佈。在下面列出的代碼中,用於創建2個不同的wx.Frame子類,使用「self」似乎讓我感到困惑和不一致。第一個代碼示例中的變量在它們前面有自己,而第二個代碼示例中的變量沒有。爲什麼會選擇使用自我,什麼時候不需要/適當。在Python和wxPython中使用「self」
class MouseEventFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, 'Frame With Button',size=(300, 100))
self.panel = wx.Panel(self)
self.button = wx.Button(self.panel,label="Not Over", pos=(100, 15))
self.Bind(wx.EVT_BUTTON, self.OnButtonClick,self.button)
self.button.Bind(wx.EVT_ENTER_WINDOW,self.OnEnterWindow)
self.button.Bind(wx.EVT_LEAVE_WINDOW,
self.OnLeaveWindow)
class InsertFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, 'Frame With Button',size=(300, 100))
panel = wx.Panel(self)
button = wx.Button(panel, label="Close", pos=(125, 10),size=(50, 50))
self.Bind(wx.EVT_BUTTON, self.OnCloseMe, button)
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
no self == [局部變量](http://en.wikipedia.org/wiki/Local_variable)。 'self.' ... == [實例變量](http://en.wikipedia.org/wiki/Instance_variable)。 – 2014-08-28 22:01:22
第一個代碼想要在這兩個屬性中直接引用面板/按鈕,第二個代碼不會。沒有比這更深的。 – roippi 2014-08-28 22:02:15
哦,好的。謝謝。所以對於像self.Bind(...)這樣的方法,我假設自己意味着不同的東西? – BPoy 2014-08-29 00:02:08