Python继承 - 框架

时间:2012-05-16 15:13:26

标签: wxpython

有人可以解释下面的代码。根据我的阅读,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))

1 个答案:

答案 0 :(得分:0)

这段代码只允许您使用父类的__init__()方法 因此,不必在子类中为这些特定属性重复属性赋值代码。

您也可以这样做:

        wx.Frame.__init__() # just an example, args omitted

但是,您正在对父类名称进行硬编码,并且您的代码变得不那么灵活。


除了:
在Python 3中,对super()的调用简化为:

        super().__init__() # just an example, args omitted