1.偏函数
保留已知参数,以后调用会自动携带它
简单案例
import functools def func(a1,a2): print(a1+a2) new_func = functools.partial(func,8) new_func(7) # 15 new_func(2) # 10 new_func(8) # 16
2.@functools.wraps(func)
wraps的作用是将被装饰的函数的一些属性传给修饰器函数(wrapper),让它具备某些功能
一般情况下:
def f1(): print('123') print(f1.__name__) #123
加上装饰器:
def wrapper(func): def inner(*args,**kwargs): return func(*args,**kwargs) return inner @wrapper def f1(): print('123') print(f1.__name__) #inner
用上装饰器后,此时发现这里f1的名称是inner,如果我们还需要原本的名称,这里就需要使用@functools.wraps,相当于伪装
import functools def wrapper(func): @functools.wraps(func) def inner(*args, **kwargs): return func(*args, **kwargs) return inner @wrapper def f1(): print('123') print(f1.__name__) # f1
注意,这个知识点在我们的flask源码中会用上