Python Frame.\uuuuInit\uuuuuuuuuuu做什么?

Python Frame.\uuuuInit\uuuuuuuuuuu做什么?,python,tkinter,frame,Python,Tkinter,Frame,在下面的代码第5行中,Frame.\uuuu init\uuuu做什么?有人能解释一下它背后的概念吗?非常感谢 from Tkinter import * class AppUI(Frame): def __init__(self, master=None): Frame.__init__(self, master, relief=SUNKEN, bd=2) [...] 编辑: 类AppUI基于Tkinter中的类Frame。这意味着AppUI类是一种

在下面的代码第5行中,
Frame.\uuuu init\uuuu
做什么?有人能解释一下它背后的概念吗?非常感谢

from Tkinter import *
class AppUI(Frame):

    def __init__(self, master=None):
        Frame.__init__(self, master, relief=SUNKEN, bd=2)
        [...]
编辑:
AppUI
基于
Tkinter
中的类
Frame
。这意味着
AppUI
类是一种
Frame
类型,但有些行为略有不同或是定制的。这意味着
AppUI
类的方法可能需要(实际上,通常需要)从
Frame
类调用代码。也就是说,
AppUI
想要做与
Frame
类相同的事情,还有其他一些事情。这就是这里发生的事情:当您实例化一个
AppUI
时,您希望它首先被初始化为一个
,然后执行特定于
AppUI
的初始化

这里
AppUI
显式调用其父类的方法


您也可以使用函数来执行此操作,通常您会这样做;它基本上是多重继承场景中所必需的。但是因为Tkinter使用,所以您必须在这里使用老方法。

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


请参阅:

它正在调用其基类
Frame
\uuuu init\uuuu
方法。我是否理解正确:AppUI继承自Frame,因此:“AppUI(Frame)”首先将我的AppUI实例初始化为一个Frame实例,但不运行Frame的“\uu init\uuuu()”方法?我认为这就是“\uuuu init\uuuu()”方法的思想,即在实例化类时立即运行它……不,
AppUI(Frame)
确定
AppUI
基于
Frame
。它不进行任何初始化。这就是
\uuuu init\uuuu()方法的作用,是的。那么“基于”是什么意思呢?也许AppUI从Frame获得了所有的方法?非常感谢你的回答!!这意味着如果未在
AppUI
上定义属性或方法,将使用
Frame
的相应属性或方法。例如,如果您没有在
AppUI
编写一个
\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuo()`in
框架
中的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu()
将自动使用。建议使用
super
通常是一个(在2.6+中,它可能会使用一些新样式的类和一些旧样式,我不记得了……但这并没有真正的帮助,因为它肯定不会记录哪些是哪些)当然,3.x的
tkinter
没有这个问题。这个问题是专门询问
\uuuu init\uuuuuu
,这个答案并没有解决这个问题。此外,问题中的代码或“完整代码”中都没有提到
状态栏在问题中链接到,因此我不理解您的答案中为什么会提到。此答案并没有解决用户提出的问题:这是关于init函数及其初始化帧的目的。