原文地址:
http://2057.iteye.com/blog/1798472
首先看下functools包含的方法
Python代码 收藏代码
Python 2.7.2 (default, Jun 20 2012, 16:23:33)
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import functools
>>> dir(functools)
['WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'cmp_to_key', 'partial', 'reduce', 'total_ordering', 'update_wrapper', 'wraps']
一、partial函数
他可以重新绑定函数的可选参数,生成一个callable的partial对象
对于已知的函数参数若可以提前获知,可以减少更多的参数调用。 (就是减少输入参数)
Python代码 收藏代码
In [16]: from functools import partial
In [17]: int2 = partial(int, base=2)
In [18]: int2('10')
Out[18]: 2
实例:
from operator import add
import functools
print add(1,2)
"""
输出:
3
"""
add1 = functools.partial(add,1)
print add1(10)
"""
输出:
11
"""
二、wraps
wraps主要是用来包装函数,使被包装含数更像原函数,它是对partial(update_wrapper, ...)的简单包装,partial主要是用来修改函数签名,使一些参数固化,以提供一个更简单的函数供以后调用
update_wrapper是wraps的主要功能提供者,它负责考贝原函数的属性,默认是:'__module__', '__name__', '__doc__', '__dict__'。
Python代码 收藏代码
>>> from functools import wraps
>>> def my_decorator(f):
... @wraps(f)
... def wrapper(*args, **kwds):
... print 'Calling decorated function'
... return f(*args, **kwds)
... return wrapper
...
>>> @my_decorator
... def example():
... """Docstring"""
... print 'Called example function'
...
>>> example()
Calling decorated function
Called example function
>>> example.__name__
'example'
>>> example.__doc__
'Docstring'
三、reduce
function的reduce与python内置的reduce是一样的
reduce()函数:reduce(func,seq[,init]),用二元函数func对序列seq中的元素进行处理,每次处理两个数据项(一个是前次处理的结果,一个是序列中的下一个元素),如此反复的递归处理,最后对整个序列求出一个单一的返回值。
Python代码 收藏代码
>>> l=[1,2,3,4,5,6]
>>> reduce((lambda x,y:x+y),l)
21
>>> import functools
>>> functools.reduce((lambda x,y:x+y),l)
21
参考资料:
http://docs.python.org/2/library/functools.html
http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html
http://blog.csdn.net/baizhiwen_2005/article/details/1181770
相关推荐
Python functools——高阶函数 https://xercis.blog.csdn.net/article/details/106253473
主要介绍了Python functools模块学习总结,本文讲解了functools.partial、functool.update_wrapper、functool.wraps、functools.reduce、functools.cmp_to_key、functools.total_ordering等方法的使用实例,需要的朋友...
所谓偏函数即是规定了固定参数的函数,在函数式编程中我们经常可以用到,这里我们就来看一下Python使用functools模块中的partial函数生成偏函数的方法
Python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对可调用对象进行处理。 functools模块函数概览 functools.cmp_to_key(func) functools....
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
主要介绍了Python中functools模块的常用函数解析,分别讲解了partial、update_wrapper、wraps、total_ordering的用法,需要的朋友可以参考下
主要介绍了Python使用functools实现注解同步方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
functools模块提供的主要工具就是partial类,可以用来“包装”一个有默认参数的callable对象。这篇文章主要介绍了Python3标准库functools管理函数的工具的实例详解,需要的朋友可以参考下
python库,解压后可用。 资源全名:coveo_functools-1.0.7-py3-none-any.whl
资源分类:Python库 所属语言:Python 资源全名:coveo_functools-2.0.10-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:coveo-functools-1.0.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
方法_cache为什么如果您要_cache对特定方法或函数的调用,则可以使用python functools._cache装饰器。 如果此配置选项不足以满足您的喜好,或者您使用的参数不可哈希,则此_缓存装饰器可能会很有用。好处适用于不可...
主要介绍了Python 3.8中实现functools.cached_property功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
主要介绍了python标准库--functools.partial,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧