在以下代码中,第5行,Frame.__init__
做了什么?有人可以解释它背后的概念吗?非常感谢!
from Tkinter import *
class AppUI(Frame):
def __init__(self, master=None):
Frame.__init__(self, master, relief=SUNKEN, bd=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