Tk .__ init __(self,* args,** kwargs)有什么作用?

时间:2018-11-18 15:09:05

标签: python python-3.x oop tkinter

为什么tk.Tk.__init__(self, *args, **kwargs)打开一个新窗口,其中的参数有什么作用?

例如:

import tkinter as tk


class App(tk.Tk):

    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        tk.Label(self, text='text on the screen').pack()


app = App()
tk.mainloop()

编辑:我并不是真的在问我主要是想知道tk.Tk.__init__(self)是做什么的* args和** kwargs!

1 个答案:

答案 0 :(得分:0)

创建新的App对象时,它将具有参数。应用程序对象的示例可能是X = App(“ Flappy Bird”,“ iPhone”,10)。 init (self):对于所有对象初始化,必须将self作为第一个参数。这样,如果您有多个App对象,Python就会知道要引用哪个对象。例如,如果您有另一个Y = App(“ Youtube”,“ Android”,11),则不是在引用X.appname或Y.appname,而是要使用属于该对象的那个。 如果您有很多参数,则使用* args传递所有参数。使用字典时,* args仅会通过所有键。如果要传递字典的所有值,请使用** kwargs。