匿名函数
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