Possible Duplicate:
What is a lambda and what is an example implementation?
以下是lambda的代码(来自Python的Byte):
def make_repeater(n):
return lambda s: s * n
twice = make_repeater(2)
print twice('word')
print twice(5)
输出如下:
^{pr2}$有人能解释一下lambda是如何长格式工作的吗?在lambda函数中,word
和{s
?在
谢谢。在
正如Jake已经描述过的,您的
make_repeater
返回另一个与2
绑定的函数(这称为closure)。所以你的代码大致相当于:大致相当于:
^{pr2}$大致相当于:
所以你实际上要做的是:
'word' * 2
,这将导致'wordword'
(Python将字符串的乘法定义为重复给定次数的字符串)lambda函数不关心其参数的类型,并在运行时动态地决定哪种乘法方法是正确的,这一事实称为dynamic typing。在
函数make_repeater返回另一个函数(lambda)。在您的示例中,lambda函数被赋予名称“tween”。lambda有一个参数“s”和一个“static”值“n”-创建lambda时定义“n”(在本例中,它被分配给“2”)。“s”的值是在调用lambda时确定的-“word”或“5”。word*2=“wordword”和5*2=10。在
相关问题 更多 >
编程相关推荐