2014-11-06 51 views
1

我们应该为我们的实验使用函数,然后使用函数闭包。 对于仿函数,我们进口的部分从functools命令,其中设定了最终看起来像:Python中的函子和函数闭包

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

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

,我们会再后来绑定到一个标签... 我会怎么做开发的方法像这样的函数闭包而不是函子?

回答

1

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

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

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

number值关闭了,使用functools.partial()对象时一会儿,number值将被绑定为一个参数传递给调用。