作者:xaony23625 | 来源:互联网 | 2023-05-19 01:20
Python的functools模块用以为可调用对象(callableobjects)定义高阶函数或操作。简单地说,就是基于已有的函数定义新的函数。所谓高阶函数,就是以函数作为输入参数,返回也
Python的functools模块用以为可调用对象(callable objects)定义高阶函数或操作。简单地说,就是基于已有的函数定义新的函数。
所谓高阶函数,就是以函数作为输入参数,返回也是函数。
1. functools模块的引用
from functools import partial
2. functools模块的组成
- partial(func, *args, **keywords)
通过封装,重新定义已有的函数,如增减参数、设置初始值或改变返回值。
该函数的返回partial对象,其中包含3个只读属性:
-
- partial.func
- partial.args
- partial.keywords
- @total_ordering
修饰class
实现多个比较操作方法,如__eq__, __lt__等
- @lru_cache(maxsize=128, typed=False)
修饰方法,重新定义已有的函数
只存在于内存中
修饰方法
将函数转换为 single-dispatch generic function
- @wraps(wrapped_func, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES)
调用update_wrapper()方法的简便实现
- update_wrapper(wrapper, wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES)
- reduce(function, iterable[, initializer])
- cmp_to_key(func)
参考链接:
https://docs.python.org/3.5/library/functools.html
https://hg.python.org/cpython/file/3.5/Lib/functools.py