我不明白引用函数myfunc的mydoubler对象如何在lambda表达式内将参数传递给'a'。
我得到的是: 有一个函数“ myfunc”带有参数“ n”。函数“ myfunc”使用lambda表达式“ lambda a:a * n”返回值。 对象mydouble是对函数“ myfunc(2)”的引用,其中mydoubler是“ return lambda a:a * 2”。
该引用是否还意味着'mydoubler'的行为与myfunc(n)相同,因此需要一个参数,该参数必须是函数'myfunc'中唯一的其他变量。这样mydoubler(a)确实是: '返回lambda a:a * 2
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
没有错误返回,只有我试图了解正在发生的事情。
答案 0 :(得分:2)
lambda函数的工作方式如下
lambda (args):return value
所以基本上和其他功能一样
考虑以下示例
x = lambda a, b : a * b
print(x(5, 6))
x现在就像一个函数(变量内部的函数),因此您可以随时调用它 ...以a,b作为参数并返回a * b,因此在这种情况下,结果为30
在您的情况下,您在python函数中具有lambda匿名函数,所以发生了 您调用 myfunc 并将n值传递给lambda函数,并返回该函数(请注意,返回了lambda函数),请使用给定值再次调用lambda函数,并它返回结果