柯里化
- 指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数
- z = f(x, y) 转换成 z = f(x)(y)的形式
举个栗子
将加法函数柯里化:
def add(x, y):
return x + y
>>> def add(x):
>>> def _add(y):
>>> return x + y
>>> return _add
>>> add(4)(5)
9
**通过嵌套函数就可以把函数转换成柯里化函数
装饰器
在我理解看来,装饰器就是增强一个函数的附加功能,而不改变该函数的所以实现
比如说:我们想对 一个加法函数,做一个增强,就是额外打印输出一些信息
>>> def add(x,y):
>>> return x + y
实现1:
>>> def logger(fn):
>>> print('begin')
>>> x = fn(4,5)
>>> print('end')
>>> return x
>>> print(logger(add))
begin
end
9
这个函数看似增强的一些打印信息,但是没法传入参数,就有问题了,不通用
实现2:解决传参问题
>>> def logger(fn,*args,**kwargs):
>>> print('begin')
>>> x = fn(*args,**kwargs)