对于以下4个功能:Python 3并非所有的1行函数都是lambdas?
def test1(a):
def result(b):
return a+b;
return result
def test2(a):
return lambda b: a+b
test3 = lambda a : lambda b : a+b
test4 = lambda a : (lambda b : a+b)
print(test1(2)(3))
print(test2(3)(4))
print(test3(5)(6))
print(test4(7)(8))
test1
工作正常test1(a)(b)
回报A + B
test2
正常工作太test2(a)(b)
返回A + B
但test3
和test4
给出一个语法错误undefined variable a
为什么译员是否可以在test1和2中找到一个,但不能在3或4中找到?
有没有办法将测试函数写成lambda?
尝试运行实际运行的代码 - 它的工作原理。 – MatsLindh
请参阅https://ideone.com/02s6h7显示它正在运行。 –
@roganjosh这当然是我的问题的简化版本。我不认为我需要在我的文章中明确地调用test1和test2。 (但我确实在我自己的代码中尝试过)。如果你喜欢,我会把它添加到这里,但我认为它增加了不必要的混乱。 – fejfo