函数与Python中的函数闭包

时间:2014-11-06 08:12:55

标签: python function closures functor functools

我们应该在实验室中使用仿函数,然后使用函数闭包。 对于函子我们从functools导入部分命令,其中设置最终看起来像:

digit = command(self.add_character, text = number)

label.bind('< Button-1 >', digit)

然后我们将稍后开发的方法绑定到标签上...... 如何使用函数闭包而不是函子来做这样的事情?

1 个答案:

答案 0 :(得分:1)

你使用lambda来绑定一个匿名函数:

label.bind('< Button-1 >', lambda ev: self.add_character(ev, text=number))

这里,我假设标签回调通常在事件参数中传递。您可能需要调整回调传递的参数数量。这是一个基于tkinter的GUI,只是事件将被传入。

number值被关闭,而使用functools.partial()对象时,number值将被绑定为可调用的参数。