【发布时间】:2019-07-10 15:05:03
【问题描述】:
我正在通过在线教程学习 Python 中的 lambda 函数。我明白它是如何工作的,但我遇到了一个让我困惑的例子(this page):
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
我不明白mydoubler 函数在这里是如何工作的。之前没有定义的 11 怎么作为参数呢?
【问题讨论】:
-
mydoubler是对myfunc返回的 lambda 的引用,并将a作为输入。 11 作为a传递。 -
mydoubler是lambda a: a * n,因此 11 是a,这是该 lambda 的唯一参数。 -
你实际上是在这里制作一个柯里化函数