我是 Python 的初学者,目前正在阅读我的书“绝对初学者的 Python 编程”的第 10/12 章。我了解 Python 中的 OOP,但由于一章(讨论了一些有关 OOP 的相关信息)是基于一个用于玩“纸牌”的程序,我不得不跳过该章的一部分(因为我不知道如何玩纸牌)和所以我错过了本书此时应该知道的重要信息。我这么说的原因是因为我需要一个简单的答案来回答我的问题,因为复杂的答案可能对我来说太难解释了。
但无论如何这是我的问题,我的书中有一段代码创建了一个简单的 GUI 程序(我完全理解),然后有一个我不理解的程序的面向对象版本(主要部分在 ' ## 的)。它包含一个叫做“超类构造函数”的东西,这完全让我感到困惑(我尝试对它进行一些研究,但它对我来说没有意义)。如果有人可以帮助向我解释第二版代码的工作原理(或提供有用的资源),那么我将不胜感激:
第一版代码:
from tkinter import *
# create a root window
root = Tk()
root.title("Lazy Buttons")
root.geometry("200x85")
app = Frame(root)
app.grid()
bttn1 = Button(app, text = "This is a button")
bttn1.grid()
root.mainloop()
第二个版本:
from tkinter import *
class Application(Frame):
def __init__(self, master): # Why is 'master' called?
super(Application, self).__init__(master) # ?
self.grid()
self.create_widgets()
def create_widgets(self):
self.bttn1 = Button(self, text = "This is a button")
self.bttn1.grid()
root = Tk()
root.title("Lazy Buttons 2")
root.geometry("200x85")
app = Application(root)
root.mainloop()