functools模块

[toc]

python中的functools模块

functools 模块可以说主要是为函数式编程arrow-up-right而设计,用于增强函数功能。 functools模块用以为可调用对象(callable objects)定义高阶函数arrow-up-right或操作。

partial函数

用于创建一个偏函数,将默认参数包装一个可调用对象,返回结果也是可调用对象。

偏函数:可以固定住原函数的部分参数,从而在调用时更简单

from functools import partial

int1 = partial(int, '10', 8)
print(int1())

# 把int1函数设置为专门把10转换为8进制的函数

update_wrapper函数

使用partial包装的函数是没有__name____和__doc____属性的。

update_wrapper:将被包装的函数的属性拷贝到新函数里去

from functools import partial,update_wrapper


int1 = partial(int, '10', 8)
update_wrapper(int1, int)
print(int1.__name__)
print(int1())

# int
# 8

wraps装饰器

装饰器版的update_wrapper函数

reduce函数

语法:reduce(函数,参数)

作用:将一个序列归纳为一个输出

cmp_to_key

将函数转换为key函数

lru_cache装饰器

允许我们将一个函数的返回值快速的缓存或取消缓存

该装饰器用于缓存函数的调用结果,对于需要多次调用的函数,而且每次调用参数都相同,则可以用该装饰器缓存调用结果,从而加快程序运行

该装饰器会将不同的调用结果缓存在内存中,因此需要注意内存占用问题

singledispatch

单分发器,用于实现泛型函数

根据单一参数的类型来判断调用那个函数

最后更新于