繁体   English   中英

在 python ZE5BA8B4C39C29BF13426EF5E0287AAA55 按钮命令中使用与不使用 lambda function 的区别

[英]Difference between using or not lambda function in python tkinter button command

在 tkinter 中使用 Button 小部件时,我有一个问题。 我是新来的。 我注意到,当我们在 Button 小部件中使用命令时,有时我们会像这样调用简单的 function 有时我们会使用 lambda function 然后我们调用它。 有什么区别?

例如:tk.Button(window, text = "Click Me,".command = myfunction) tk,Button(win,text="Result":command=lambda.result(en1.get())

我们不能在没有 lambda 的情况下使用它吗? 谢谢你。

lambda的使用:

  • 括号是 function 在作为没有lambdaButtoncommand时被执行的主要原因。 如果函数(您作为command传递给Button )没有参数(要传递给自身),那么您可以简单地将其作为command传递,避免使用括号() 因此,在这种情况下,您不需要使用lambda 就像在这个例子中一样: command=func

  • 因此,仅当 function 有自己的参数(要传递给自己)时才需要使用lambda 。就像在这个例子中一样: command=lambda:func(a,b,c)

lambda做什么:

  • 当您必须将 arguments 传递给 function 本身时,您无法避免parentheses()
  • 因此,在buttons的情况下, lambda基本上会延迟 function 的执行,直到用户单击按钮。 因此 function 不会被执行,它被作为command提供给Button

任何问题都会得到解答。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM