首页 > 解决方案 > python tkinter按钮命令中使用或不使用lambda函数的区别

问题描述

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

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

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

标签: pythonbuttontkinter

解决方案


用途lambda

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

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

做什么lambda

  • 当您必须将参数传递给函数本身时,您无法避免parentheses()
  • 因此,在 的情况下buttonslambda基本上延迟函数的执行,直到用户单击按钮,通过在现场创建另一个函数,直到实际单击按钮时才调用该函数。因此,该函数不会被执行,它commandButton.

任何问题都会得到解答。


推荐阅读