Python 3.x 为什么super()将tkinter小部件加倍?

Python 3.x 为什么super()将tkinter小部件加倍?,python-3.x,tkinter,super,Python 3.x,Tkinter,Super,目前我正在编写一个应用程序,并为此创建了三个类。 第一个类包含所有函数。第二个类包含“窗口”小部件,第三个类包含导航栏 当我从第二个类继承第一个类时,按钮工作并执行函数。当我从导航类继承window类时,通过它我也继承了function类,我的小部件突然加倍了。 按钮工作(两个按钮都工作),但显然我不希望它加倍 谁能给我解释一下吗 我的代码是: from tkinter import * class FunctionClass: def print_text(self):

目前我正在编写一个应用程序,并为此创建了三个类。 第一个类包含所有函数。第二个类包含“窗口”小部件,第三个类包含导航栏

当我从第二个类继承第一个类时,按钮工作并执行函数。当我从导航类继承window类时,通过它我也继承了function类,我的小部件突然加倍了。 按钮工作(两个按钮都工作),但显然我不希望它加倍

谁能给我解释一下吗

我的代码是:

from tkinter import *

class FunctionClass:

    def print_text(self):
        print("This is an example!")


class Start(FunctionClass):

    def __init__(self, master):
        super().__init__()
        frame = Frame(master)
        frame.pack()

        self.label = Label(frame,text="This is just a label.").pack()
        self.label2 = Label(frame, text="This is second label.").pack()
        self.button = Button(frame, text="Magic Button", command=self.print_text).pack()


class TopMenu(Start):

    def __init__(self, master):
        super().__init__(master)
    # *******Top-Navigation Bar**********
        tnb = Menu(master)
        root.config(menu=tnb)

    # *******tnb_file*******

        tnb_file = Menu(tnb, tearoff=0)
        tnb.add_cascade(label="File", menu=tnb_file)
        tnb_file.add_command(label="Button", command=self.print_text)
        tnb_file.add_separator()
        tnb_file.add_command(label="Exit", command=root.destroy)





root = Tk()
g = Start(root)
d = TopMenu(root)

root.mainloop()
继承的意思是a。如果“狗”继承自“动物”,那么“狗”就是“动物”

TopMenu
继承自
Start
时,
TopMenu
是一个
Start
。任何
Start
做或可以做的事情都可以通过
TopMenu
完成。因此,因为
Start
创建了一些小部件,所以从
Start
继承的任何东西也将创建小部件

执行此操作时:

g = Start(root)
d = TopMenu(root)

。。。首先使用
g=Start(root)
创建小部件,然后在执行
d=TopMenu
时再次创建小部件。同样,这是因为
TopMenu
\u是一个
开始

“这是类2从类2继承时的输出”-您显示了四个类。哪个是“一级”,哪个是“二级”?另外,请修复代码中的缩进错误。很抱歉,我缩进了代码并修复了图片描述。另外,我删除了类状态栏,因为它没有添加任何信息。仅供参考:第二张图片的描述是“这是类2继承自类2时的输出”,非常感谢您的清晰描述。我从来没有想过这种联系,但当然,这是绝对有道理的。为了完成这个问题,我删除了对象“g=Start(root)”,一切都很好。