lambda匿名函数

lambda匿名函数

1. lambda是匿名函数,但是可以命名,名字在等号左边

在这里插入图片描述

2. lambda中只能包含一个表达式,不能包含复合语句

语法:
<函数名> = lambda <参数> : <表达式>

f = lambda x, y, z: x+y+z  #f是表达式的名字
>>> f(1,2,3)  #像函数一样调用
6

3. lambda是一个表达式,而不是语句

  • 所以lambda能够出现在Python语法不允许def出现的地方
  • 作为一个表达式,lambda返回一个值(一个新的函数),可以选择性地被赋值给一个变量名

4. lambda的主体是一个单独的表达式,而不是一个代码块

  • 这样设计的目的是限制程序的嵌套:lambda是一个为编写简单的函数而设计的,而def用来处理更大的任务
  • def 和lambda都能完成同样 种类的工作
>>> x = (lambda a = "fee", b = "fie", c = "cio" : a + b + c)
>>> x("acb")
'acbfiecio'

5 . lambda嵌套

在外层嵌套被调用的时候,嵌套在内的lambda能够获取到在外层函数作用域中变量名x的值

>>> def action(x):
>>> 	return (lambda y:x + y)
>>> act = action(99)
<function __main__.action.<locals>.<lambda>>
>>> act(2)
101

出于对代码可读性的考虑,一般最好避免使用嵌套的lambda

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值