Frame .__ init__做什么?

时间:2013-09-20 19:28:21

标签: python tkinter frame

在以下代码中,第5行,Frame.__init__做了什么?有人可以解释它背后的概念吗?非常感谢!

from Tkinter import *
class AppUI(Frame):

    def __init__(self, master=None):
        Frame.__init__(self, master, relief=SUNKEN, bd=2)
        [...]

编辑: Full Code with correct indention here

2 个答案:

答案 0 :(得分:6)

课程AppUI基于Frame的课程Tkinter。这意味着AppUI类是类型的 Frame,但有些行为略有不同或自定义。这意味着AppUI类的方法可能需要(实际上通常需要)从Frame类调用代码。也就是说,AppUI想要与Frame类,以及做同样的事情。这就是这里发生的事情:当您实例化AppUI时,您希望首先将其初始化为Frame,然后执行AppUI特定的初始化。

此处AppUI显式调用其父类的__init__()方法。

您也可以使用super()功能执行此操作 - 通常您会这样做;它在多继承场景中基本上是必需的。但是因为Tkinter使用"old-style classes",所以你必须在这里采用旧的方法。

答案 1 :(得分:-1)

背后的概念是Tkinter为菜单提供了一种特殊的小部件类型,StatusBar继承自Frame小部件。当你使用它时,我认为目的是它不会增加你的附加方法与Tkinter使用的属性或方法冲突的风险

请参阅:http://effbot.org/tkinterbook/tkinter-application-windows.htm