huangzhebin

天道酬勤

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





阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zlpzhebin/article/details/51563983
个人分类: python
上一篇python 高阶函数
想对作者说点什么? 我来说一句

Python__高阶函数

高阶函数

qq_31179919 qq_31179919

2016-08-25 16:21:15

阅读数:579

没有更多推荐了,返回首页

关闭
关闭