【问题标题】:Difference between using or not lambda function in python tkinter button commandpython tkinter按钮命令中使用或不使用lambda函数的区别
【发布时间】:2020-07-23 19:13:11
【问题描述】:

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

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

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

【问题讨论】:

  • 如果您必须将一些参数传递给函数,请使用lambda

标签: python button tkinter


【解决方案1】:

使用lambda

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

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

lambda 做什么:

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

任何问题都会得到解答。

【讨论】:

    猜你喜欢
    • 2013-04-19
    • 2018-06-10
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    相关资源
    最近更新 更多