我目前正在阅读一篇关于wxPython的热门出版物。在下面列出的代码中,用于创建2个不同的wx.Frame子类,“self”的使用对我来说似乎令人困惑和不一致。第一个代码示例中的变量在它们前面有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)
答案 0 :(得分:0)
一般情况下(这是对@ roippi评论的重新修改),请self.panel = ...
说明这一点,以便您稍后可以访问self.panel
。它长期存储数据。但是,如果您输入panel = ...
,则无法在此方法之外访问名为panel
的变量。