Python中 lambda函数 含有多个参数的疑惑理解

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

 

转载于:https://my.oschina.net/u/3715293/blog/1556831

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值