函数参数可以具有多个默认值吗?

问题描述 投票:0回答:1
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的文本定义的最后一个函数。所有按钮的所有命令选项均指向相同的函数,但默认值仍不同。为什么?

python-3.x function tkinter default
1个回答
0
投票

一个功能参数可以有多个默认值吗?

是,它可以有任意多个。

但是在循环结束之后,不应只使用默认值为4的文本来定义最后一个函数。

否,因为您在循环的每次迭代中都创建了一个新函数。每次在循环内调用def func时,都会调用一个新函数。

© www.soinside.com 2019 - 2024. All rights reserved.