python - Python 中的仿函数与函数闭包

标签 python function closures functor functools

我们应该在实验室中使用仿函数,然后使用函数闭包。 对于仿函数,我们从 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/

相关文章:

python - 实验室作业遇到问题(使用列表和整数)

python - Dict一键对Dics列表进行分组

postgresql - 通过 PostgreSQL 中的函数返回列列表

c - 局部静态变量如何在方法中工作?

javascript - 在 jQuery 插件的属性中未定义对对象方法的引用

javascript - JSHint 关于使用外部变量的循环内部闭包的警告

python - 从每个组中减去组特定值

Python正则表达式获取组位置

ios - 如何在模态视图 Controller 被关闭时调用函数

c# - 在使用闭包的 LINQ 语句中,是否可以在闭包中指定 where 子句?