猿问

为什么在声明时执行Button参数“命令”?

为什么在声明时执行Button参数“命令”?

我是Python新手,想用tkinter编写一个程序。为什么执行下面的Hello函数?据我所知,只有在按下按钮时才会执行回调?我很困惑.。

>>> def Hello():
        print("Hi there!")>>> hi=Button(frame,text="Hello",command=Hello())Hi there!>>>


忽然笑
浏览 580回答 2
2回答

白板的微信

的参数时调用它。Button正在分配:command=Hello()如果您想传递函数(而不是它的返回值),则应该改为:command=Hello总体而言function_name是一个函数对象,function_name()不管函数返回什么。看看这是否有进一步的帮助:>>>&nbsp;def&nbsp;func():...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;'hello'...&nbsp;>>>&nbsp;type(func)<type&nbsp;'function'>>>>&nbsp;type(func())<type&nbsp;'str'>如果要传递参数,可以使用Lambda表达若要构造无参数可调用性,请执行以下操作。>>>&nbsp;hi=Button(frame,&nbsp;text="Hello",&nbsp;command=lambda:&nbsp;Goodnight("Moon"))简单地说,因为Goodnight("Moon")在lambda中,它不会立即执行,而是等待按钮被单击。
随时随地看视频慕课网APP

相关分类

Python
我要回答