Python Frame.\uuuuInit\uuuuuuuuuuu做什么?
在下面的代码第5行中,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类是一种
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函数及其初始化帧的目的。