gpt4 book ai didi

python - tkinter 帮助 : difference between "master" and "root" keywords in this code?

转载 作者:行者123 更新时间:2023-12-05 02:52:41 25 4
gpt4 key购买 nike

我正在学习 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”有什么区别?代码中“master”关键字的目的是什么?据我了解,“self”类似于 Java 中的“this”关键字,所以我假设 self 和 master 不一样?

在此先感谢您的帮助!如果我问的不够清楚,我们深表歉意。

最佳答案

masterroot 不是关键字,它们是元句法变量,对编译器没有任何特殊意义。此代码也可以正常工作:

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()

希望这对您有所帮助!

关于python - tkinter 帮助 : difference between "master" and "root" keywords in this code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62536863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com