Python tkinter帮助:区别于;大师;及;根“;这个代码中的关键字?

Python tkinter帮助:区别于;大师;及;根“;这个代码中的关键字?,python,tkinter,Python,Tkinter,我正在学习Tkinter并试图理解OOP的概念。我在网上发现了以下代码: class MyFirstGUI: def __init__(self, master): self.master = master master.title("A simple GUI") self.label = Label(master, text="This is our first GUI!") se

我正在学习Tkinter并试图理解OOP的概念。我在网上发现了以下代码:

class MyFirstGUI:
    def __init__(self, master):
        self.master = master
        master.title("A simple GUI")

        self.label = Label(master, text="This is our first GUI!")
        self.label.pack()

        self.greet_button = Button(master, text="Greet", command=self.greet)
        self.greet_button.pack()

        self.close_button = Button(master, text="Close", command=master.quit)
        self.close_button.pack()

    def greet(self):
        print("Greetings!")

root = Tk()
my_gui = MyFirstGUI(root)
root.mainloop() 
这段代码工作得很好,我了解小部件的功能以及它们的作用,但是,我对代码进行了如下编辑:

class Timer:

    def __init__(self, master):
        self.master = master
        master.title = ("A simple GUI")

        self.label = Label(master, text="first GUI")
        self.label.pack()

        self.greet_button = Button(master, text="Greet", command=self.greet)
        self.greet_button.pack()

        self.close_button = Button(master, text="Close", command=master.quit)
        self.close_button.pack()

    def greet(self):
        print("Greetings!")

master = Tk()
my_gui = Timer(master)
master.mainloop()
令我惊讶的是,这段代码也工作得很好。我的问题是,使用“master”和“root”有什么区别?代码中的“主”关键字的用途是什么?据我所知,“self”类似于Java中的“this”关键字,所以我假设self和master不一样


提前感谢你们的帮助!如果我问的不够清楚,请道歉。

master
root
不是关键字,它们是元语法变量,对编译器没有任何特殊意义。这段代码也可以很好地工作:

class MyFirstGUI:
    def __init__(self, chickens):
        self.chickens = chickens
        chickens.title("A simple GUI")

        self.label = Label(chickens, text="This is our first GUI!")
        self.label.pack()

        self.greet_button = Button(chickens, text="Greet", command=self.greet)
        self.greet_button.pack()

        self.close_button = Button(chickens, text="Close", command=chickens.quit)
        self.close_button.pack()

    def greet(self):
        print("Greetings!")

stackoverflow = Tk()
my_gui = MyFirstGUI(stackoverflow)
stackoverflow.mainloop() 

希望这有帮助

我不认为你称它为“大师”或“根”有什么区别。人们称之为“根”,因为Tkinter小部件放在树中,所以其中的一部分将是“根”。人们会称之为“主控”,因为所有小部件都有一个它们要去的父部件或一个主部件。所以你可以叫它任何东西。我希望这些答案有帮助

无论是
master
还是
root
都不是关键词。它们只是一些人选择的变量。它们可以是任何不同的东西。同样,self也是类似的,但这是一个非常强大的惯例。哦,哈哈,这很有道理!那么在你的例子中,“鸡”指的是父窗口吗?这是否只是一种确保代码知道要在哪个窗口中放置按钮或标签的方法?是的
stackoverflow
是新的Tkinter窗口,它使用参数
传递给
MyFirstGUI
类。你是对的,这个变量是用来让Tkinter知道把东西放在哪里的。