python 高阶函数(二)

匿名函数

python中用关键字lambda表示匿名函数,匿名函数只有一条语句,很简洁也没有函数名
lambda 参数 : 返回值
lambda可以不传参数,但必须要有返回值
>>> f=lambda x,y:x+y
>>> f(1,2)
3

>>> def f(x, y):
...    return x+y

以上两个函数是等价的

装饰器

装饰器从字面上来说就是在不改变被装饰对象的前提下修饰被装饰对象,对于已经定义好的的函数,如果想要在不修改原函数的前提下增加原函数的功能,就可以用到装饰器
>>> def log(func):
...     def wrapper(*args, **kw):
...         print('Hello')
...         return func(*args, **kw)
...     return wrapper
...
>>> @log
... def who():
...     print('python')
...
>>> who
<function log.<locals>.wrapper at 0x10436a1e0>
>>> who()
Hello
python
>>>

装饰器实质上是高阶函数,接收一个函数作参数并返回一个新的函数,调用
>>> @log
... def who():
...     print('python')
...
其实相当于执行这条语句
>>> who=log(who)

偏函数

偏函数实质上是使用python 自带的functools 模块中的Partial function 来修改已有的带有默认参数的函数的默认参数并返回一个新的函数
>>> import functools
>>> int2=functools.partial(int, base=2)
>>> int2('10111')
23





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值