对于以下4个功能:
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)
返回+ b
test2
工作正常test2(a)(b)
返回+ b
但是test3
和test4
会出现语法错误undefined variable a
为什么翻译可以在test1和2中找到,但不能在3或4中找到? 有没有办法把测试函数写成lambda?
答案 0 :(得分:2)
您的代码没问题,您所拥有的undefinded variable
只是您正在使用的IDE或帮助程序的问题,似乎无法正确捕获lambda
范围。
您可以看到它以相同的“错误”here运行