【发布时间】:2021-12-01 04:30:45
【问题描述】:
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
n = 2的值,之后我很困惑a的值是什么,以及lambda函数是如何执行的。
【问题讨论】:
-
你的函数返回一个函数:-)
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
n = 2的值,之后我很困惑a的值是什么,以及lambda函数是如何执行的。
【问题讨论】:
您的myfunc 是嵌套函数,lambdas 是函数。
同样的实现是:
def outer(n):
def inner(a):
return a * n
return inner
它也会返回一个类似于原始 myfunc 的函数。由于myfunc的调用返回也是一个函数,所以你也可以调用内部函数。
【讨论】:
当调用外部函数时,内部 lambda 会创建一个函数。外部 lambda 然后返回被调用的函数。它发生了上述描述..即:当我们调用 mydoubler(11) 时,给定值 a=11 并调用 n=2。
【讨论】: