我们应该在实验室中使用仿函数,然后使用函数闭包。 对于仿函数,我们从 functools 导入部分作为命令,其设置最终看起来像这样:
digit = command(self.add_character, text = number)
label.bind('< Button-1 >', digit)
然后我们将稍后开发的方法绑定(bind)到标签...... 我该如何使用函数闭包而不是仿函数来做这样的事情?
最佳答案
您可以使用 lambda 绑定(bind)匿名函数:
label.bind('< Button-1 >', lambda ev: self.add_character(ev, text=number))
在这里,我假设标签回调通常在事件参数中传递。您可能需要调整回调传递的参数数量。这是一个基于 tkinter
的 GUI,只需传入事件即可。
number
值是封闭的,而当使用 functools.partial()
对象时,number
值将被绑定(bind)为可调用的参数。
关于python - Python 中的仿函数与函数闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26774594/