有人可以解释下面的代码。根据我的阅读,Myframe继承了wx.frame,但我不明白的是init方法中给出的以下行,
super(MyFrame, self).__init__(parent, id, title,
pos, size, style, name)
代码
class MyFrame(wx.Frame):
def __init__(self, parent, id=wx.ID_ANY, title="",
pos=wx.DefaultPosition, size=wx.DefaultSize,
style=wx.DEFAULT_FRAME_STYLE,
name="MyFrame"):
super(MyFrame, self).__init__(parent, id, title,
pos, size, style, name)
# Attributes
self.panel = wx.Panel(self)
self.panel.SetBackgroundColour(wx.BLACK)
self.button = wx.Button(self.panel,
label="Push Me",
pos=(50, 50))
答案 0 :(得分:0)
这段代码只允许您使用父类的__init__()
方法
因此,不必在子类中为这些特定属性重复属性赋值代码。
您也可以这样做:
wx.Frame.__init__() # just an example, args omitted
但是,您正在对父类名称进行硬编码,并且您的代码变得不那么灵活。
除了:
在Python 3中,对super()
的调用简化为:
super().__init__() # just an example, args omitted