TypeError:<lambda>()不带参数(给定1个)

evo*_*zer 16 python lambda tkinter

我是python编程的新手,我仍在试图找出lambda的用法.经过多次谷歌搜索后,我想要一些gui程序,我认为我需要使用这个按钮来工作,因为我需要它

这个工作

mtrf = Button(root, text = "OFF",state=DISABLED,command = lambda:b_clicked("mtrf"))
Run Code Online (Sandbox Code Playgroud)

但是当我为Scale做同样的事情时它不起作用

leds = Scale(root,from_=0,to=255, orient=HORIZONTAL,state=DISABLED,variable =num,command =lambda:scale_changed('LED'))
Run Code Online (Sandbox Code Playgroud)

eum*_*iro 37

Scale调用command与一个参数一起传递的函数,所以你必须使用它(尽管立即扔掉它).

更改:

command=lambda: scale_changed('LED')
Run Code Online (Sandbox Code Playgroud)

command=lambda x: scale_changed('LED')
Run Code Online (Sandbox Code Playgroud)

  • `_`传统上用作'未使用的参数'的标记:`command = lambda _:scale_changed('LED')` (16认同)

Ale*_*ill 5

这可能是因为命令传递的参数可能是您不想要的.尝试更改lambda

command=lambda:scale_changed('LED')
Run Code Online (Sandbox Code Playgroud)

command=lambda x:scale_changed('LED')
Run Code Online (Sandbox Code Playgroud)