Python Turtle中onclick()为何立即调用绑定函数?
问题根源与修复方案
- 问题本质:调用
onclick()时,你传入的是draw_onclick2()和draw_onclick()——这是直接执行函数并把返回值传给方法,所以代码运行到这一行就会立即触发函数,根本等不到点击事件。 - 修复代码:把函数名后的括号去掉,传递函数本身的引用即可:
button2.onclick(draw_onclick2) button.onclick(draw_onclick) - 额外说明:如果需要给绑定的函数传自定义参数,可以用
lambda包装(注意onclick默认会把点击坐标作为参数传给函数,所以lambda要接收这两个参数):# 示例:给draw_onclick2传自定义参数 button2.onclick(lambda x, y: draw_onclick2("自定义参数"))
内容的提问来源于stack exchange,提问作者TheDefenestrator
相关产品推荐
相关产品推荐

