import tkinter
root = tkinter.Tk()
for i in range(5):
def func(text=i):
print(text)
tkinter.Button(root, command=func).pack()
root.mainloop()
代码每次循环运行时都会定义一个新函数。但是,在循环结束之后,不应仅使用默认值为4的文本定义的最后一个函数。所有按钮的所有命令选项均指向相同的函数,但默认值仍不同。为什么?
一个功能参数可以有多个默认值吗?
是,它可以有任意多个。
但是在循环结束之后,不应只使用默认值为4的文本来定义最后一个函数。
否,因为您在循环的每次迭代中都创建了一个新函数。每次在循环内调用def func
时,都会调用一个新函数。