Я использую классы только в течение короткого времени, и когда я пишу метод, я делаю все переменные ссылкой self, например. self.foo.Когда требуется «я»?
Тем не менее, я смотрю на wxPython in Action и замечаем, что «я» не используется все время. Например:
import wx
class TextFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'Text Entry Example',
size=(300, 100))
panel = wx.Panel(self, -1)
basicLabel = wx.StaticText(panel, -1, "Basic Control:")
basicText = wx.TextCtrl(panel, -1, "I've entered some text!",
size=(175, -1))
basicText.SetInsertionPoint(0)
pwdLabel = wx.StaticText(panel, -1, "Password:")
pwdText = wx.TextCtrl(panel, -1, "password", size=(175, -1),
style=wx.TE_PASSWORD)
sizer = wx.FlexGridSizer(cols=2, hgap=6, vgap=6)
sizer.AddMany([basicLabel, basicText, pwdLabel, pwdText])
panel.SetSizer(sizer)
В приведенном ниже примере используется «self».
import wx
class ButtonFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'Button Example',
size=(300, 100))
panel = wx.Panel(self, -1)
self.button = wx.Button(panel, -1, "Hello", pos=(50, 20))
self.Bind(wx.EVT_BUTTON, self.OnClick, self.button)
self.button.SetDefault()
def OnClick(self, event):
self.button.SetLabel("Clicked")
Если я правильно помню, «я» ссылка на конкретный экземпляр класса, поэтому, когда это не нужно? Есть общее правило?
Dupe: http://stackoverflow.com/questions/68282/why-do-you-need-explicitly-have-the-self-argument-into-a-python-method – 2008-11-11 14:32:13
Человек, почему я не могу найти эти предыдущие вопросы, когда я ищу? Это похоже на шестой раз, когда это произошло. Спасибо за ссылку. – crystalattice 2008-11-12 03:25:16