lambda对我来说是新的,我试图通过将lambda转换为普通函数来理解lambda的机制。我看到了这段代码:
def add(n):
return lambda x: n+x
print add(5)(3)
#output is 8
所以我试着将这段代码转换成一个位于函数内的普通函数:
def add(n):
def other(x):
return n+x
return other(3)
print add(5)
#output is 8
他们的输出是相同的但是因为我是学习lambdas的新手,这是一种改变它们的正确方法吗?还是有比我做的更好的方式?
答案 0 :(得分:0)
你的第二个例子是有效的代码,但它违背了使用lambda的目的。
通常,您将返回一个lambda来延迟部分执行,直到稍后。你可以在第一个例子中看到。 add
返回一个执行数学运算的函数。然后,调用者可以立即调用返回的函数,或者稍后如果他们想要延迟执行,直到它们具有数据的第二部分。
真的,你的第二个例子应该是:
def add(n):
return n + 3
因为它无论如何都会立即调用lambda。