functools模块用于高阶函数:作用于或返回其它函数的函数。通常,任何可调用的对象都可以被视为函数。
functools模块定义了下列函数:
@functools.cache(user_function)
@functools.cached_property(func)
functools.cmp_to_key(func)
@functools.lru_cache(user_function)
@functools.lru_cache(maxsize=128, typed=False)
@functools.total_ordering
functools.partial(func, /, *args, **keywords)
返回一个新的partial对象,当调用该对象时类似于调用func函数,而函数的参数使用args和keywords。如果有更多的参数被传递,则他们被追加到args后。如果提供了其它的关键字,则keywords被扩展或覆盖。
partial用于部分函数应用程序,它“冻结”函数参数或关键字的某些部分,从而生成具有简化签名的新对象。例如,partial可用于创建一个可调用对象,其行为类似于 int函数,其中 base 参数默认为 2:
>>> from functools import partial
>>> binary_str_2_int = partial(int, base=2)
>>> binary_str_2_int.__doc__ = '将二进制字符串转换成整数'
>>>
>>> binary_str_2_int('10010')
>>> 18
class functools.partialmethod(func, /, *args, **keywords)
functools.reduce(function, iterable[, initializer])
@functools.singledispatch
class functools.singledispatchmethod(func)
functools.update_wrapper(wrapper, wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES)
@functools.wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES)
partial Objects