lambda的基本语法和基础应用,网上很多。这里就不多说了。这里主要说下lambda函数与其他函数嵌套使用的问题。以下面的函数为例
def test(n):
print (n)
print ("-"*10)
return lambda x:n+x
a = test(1)
print(a(3))
输出结果:
1
----------
4
1、 test(1)中的1 并没有被传到lambda函数里。
2、a函数的实参,如本例中的 3,被传递到lambda 的参数里,对应的形参是 x ,
3、lambda后面的表达式会在整个函数里寻找变量,比如 n+x 中的n,就会在test函数中取值。
即便是lambda参数里的形参和test一致,因为第一条的缘故,会有产生以下结果
def test(n):
print (n)
print ("-"*10)
return lambda n:n+8
a = test(1)
print(a(3))
结果:
1
----------
11