作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想设置一个对象的颜色,并且不想为每种颜色创建 10 个函数。所以,我只想声明颜色并创建 10 个按钮和一个功能。错误信息是:
<lambda>() missing 1 required positional argument: 'green'
代码:
from tkinter import *
green=["#5bd575","#55c76d"]
#different colors should follow here
root=Tk()
Btn=Button(text="Trigger lambda", command=lambda green: printfunction(green))
Btn.pack()
def printfunction(colorset):
print(colorset)
它不需要是 lambda 函数,问题只是,如何通过单击按钮来调用带参数的 printfunction
?
最佳答案
可调用的命令
不接受任何参数。如果您想将 green
列表传递给 printfunction
,只需省略参数,lambda 不需要它:
Btn=Button(text="Trigger lambda", command=lambda: printfunction(green))
现在 lambda 中的绿色
指的是全局。
如果您只想使用预定义参数调用 printfunction
,则可以使用 functools.partial()
function ;您将要调用的函数以及需要传入的任何参数传递给它,当调用它的返回值时,它会执行此操作;使用您指定的参数调用函数:
from functools import partial
Btn=Button(text="Trigger lambda", command=partial(printfunction, green))
关于python - 如何在Python中的lambda函数中传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16633999/
我是一名优秀的程序员,十分优秀!