- 浏览: 247082 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (127)
- vim (3)
- python (44)
- pymysql (1)
- mysql (9)
- macvim (1)
- erlang (3)
- twisted (0)
- tornado (5)
- django (7)
- postgresql (5)
- sql (1)
- java (7)
- tech (4)
- cache (1)
- lifestyle (3)
- html (1)
- ubuntu (2)
- rabbitmq (1)
- algorithm (8)
- Linux (4)
- Pythonista (1)
- thread (1)
- sort (6)
- 设计模式 (1)
- search (1)
- Unix (6)
- Socket (3)
- C (2)
- web (1)
- gc (1)
- php (10)
- macos (1)
最新评论
-
2057:
这个程序有bug。
查找算法学习之二分查找(Python版本)——BinarySearch -
dotjar:
NB
一个Python程序员的进化[转]
首先看下functools包含的方法
一、partial函数
他可以重新绑定函数的可选参数,生成一个callable的partial对象
对于已知的函数参数若可以提前获知,可以减少更多的参数调用。
二、wraps
wraps主要是用来包装函数,使被包装含数更像原函数,它是对partial(update_wrapper, ...)的简单包装,partial主要是用来修改函数签名,使一些参数固化,以提供一个更简单的函数供以后调用
update_wrapper是wraps的主要功能提供者,它负责考贝原函数的属性,默认是:'__module__', '__name__', '__doc__', '__dict__'。
三、reduce
function的reduce与python内置的reduce是一样的
reduce()函数:reduce(func,seq[,init]),用二元函数func对序列seq中的元素进行处理,每次处理两个数据项(一个是前次处理的结果,一个是序列中的下一个元素),如此反复的递归处理,最后对整个序列求出一个单一的返回值。
参考资料:
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 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对象
对于已知的函数参数若可以提前获知,可以减少更多的参数调用。
In [16]: from functools import partial In [17]: int2 = partial(int, base=2) In [18]: int2('10') Out[18]: 2
二、wraps
wraps主要是用来包装函数,使被包装含数更像原函数,它是对partial(update_wrapper, ...)的简单包装,partial主要是用来修改函数签名,使一些参数固化,以提供一个更简单的函数供以后调用
update_wrapper是wraps的主要功能提供者,它负责考贝原函数的属性,默认是:'__module__', '__name__', '__doc__', '__dict__'。
>>> 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中的元素进行处理,每次处理两个数据项(一个是前次处理的结果,一个是序列中的下一个元素),如此反复的递归处理,最后对整个序列求出一个单一的返回值。
>>> 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
发表评论
-
macos 10.9.2 clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command
2014-03-25 19:13 1759方法总是有的,当然需要你去寻找。 当然如果花费太多的时间在一件 ... -
PostgreSQL psycopg2:IndexError: tuple index out of range
2014-01-09 17:04 2230Postgresql psycopg2使用like查询的时候 ... -
Python 迭代器和生成器
2013-10-15 23:09 2849迭代器 迭代器只不过是一个实现迭代器协议的容器对象。它基于两个 ... -
Python时间模块
2013-10-15 23:03 3469time模块 时间模块中最常用的一个函数就是获取当前时间的函数 ... -
Python装饰器
2013-10-15 22:59 1568编写自定义装饰器有许多方法,但最简单和最容易理解的方法是编写一 ... -
python list
2013-10-15 22:56 1254简单总结以及整理如下: >>> dir( ... -
Python Excel
2013-09-10 17:21 975安装lib easy_install xlrd def ... -
排序算法学习(python版本)之堆排序(HeapSort)
2013-07-01 22:54 1996Contains: 堆排序以及堆排序的应用 堆排序(Heaps ... -
python range xrange
2013-06-25 23:30 1148引用Help on built-in function ran ... -
python class
2013-06-25 00:54 1828引用类是创建新对象类 ... -
AttributeError: 'module' object has no attribute 'SendCloud'
2013-06-05 11:46 7083网上查了下 意思是说你命名的文件名不能和lib重名,这样会导 ... -
python string
2013-05-07 23:44 2198如果这就是字符串,这本来就是字符串 首先看下字符串的方法 ... -
Python property
2013-03-29 19:56 0由于之前有总结过,可以参考http://2057.iteye. ... -
python tips
2013-03-28 23:57 8831、enum #!/usr/bin/env python ... -
python decorators
2013-03-28 23:36 1365Contains: 1、decorators 2、funct ... -
python closures
2013-03-28 22:09 1190Closure:如果在一个内部函数里,对在外部作用域(但不是在 ... -
Python map、filter,reduce介绍
2013-03-28 22:02 13091、filter(function,iterable) 引用C ... -
Python __new__ 、__init__、 __call__
2013-03-26 23:49 5351Contains: __new__: 创建对象时调用,返回当 ... -
Python socket简介
2013-03-25 23:42 2168自豪地使用dir和help. Python 2.7.2 ( ... -
Tornado ioloop源码简析
2013-03-21 00:18 2849#!/usr/bin/env python #-*-en ...
相关推荐
在Python编程语言中,`functools`模块是标准库的一部分,它提供了许多有用的函数,尤其是与函数操作相关的工具。这个模块的目的是增强函数的功能,提高代码的复用性和可读性。`functools`模块是实现高级编程技术,如...
Python标准库中的`functools`模块提供了`partial`函数,用于生成偏函数。 `functools.partial`的工作原理是,它接受一个原函数和一些额外的参数(包括位置参数和关键字参数),然后创建一个新的函数,这个新函数在...
### Python中functools模块函数解析 #### 一、引言 `functools`是Python标准库中的一个重要模块,提供了许多高级功能来处理函数。本文将深入介绍`functools`模块中的一些常用函数,包括`cmp_to_key`、`total_...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
《Python库解析:coveo_functools-1.0.7-py3-none-any.whl》 在Python编程世界中,库是开发者们的重要工具,它们提供了丰富的功能,简化了复杂的任务处理。本文将深入探讨名为“coveo_functools”的Python库,其...
在Python3标准库中,`functools`模块是一个非常重要的工具,它提供了一系列高级函数,用于处理其他可调用对象,如函数、方法等。本文将深入探讨`functools`模块中的主要功能,尤其是`partial`类,以及如何使用它来...
### Python中functools模块的常用函数解析 `functools`模块是Python标准库中的一个强大工具,它提供了一系列用于处理函数的功能。本篇文章将会详细介绍`functools`模块中的一些常用函数,包括`partial`、`update_...
Python 3.2版本之后引入的functools模块提供了wraps函数,可以用来复制原函数的元数据到装饰器中创建的新函数上,这使得我们可以更加优雅地实现装饰器。 本文主要探讨如何使用functools模块结合装饰器模式来实现...
Python标准库中的`functools`模块提供了一个非常有用的工具——`partial`,它允许我们将部分参数预先设置好,从而创建一个新的函数,这个新函数具有与原函数相同的功能,但具有不同的默认参数值。下面我们将深入探讨...
资源分类:Python库 所属语言:Python 资源全名:coveo_functools-2.0.10-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
itertools和functools是Python内置的两个模块,提供了多种函数可以帮助开发者优化Python代码。这些函数可以帮助开发者实现高效的代码。 5. NumPy、SciPy、Sage和Pandas NumPy、SciPy、Sage和Pandas是四个常用的...
Python的`functools`模块是标准库中的一部分,它包含了一些高级函数,这些函数主要用于操作其他函数。本文重点讨论`functools.partial`,这是一个非常实用的功能,它允许我们预设函数的一部分参数,从而创建出新的、...
`functools.cached_property` 是 Python 3.8 中新增的一个特性,它是一个装饰器,用于将一个方法转换为缓存的属性。这个功能在处理计算密集型或需要复杂计算的属性时非常有用,因为它可以避免多次重复计算同一属性的...
5. **函数式编程**:增加了`functools`模块,提供了高阶函数,如`partial`,用于创建部分应用函数,以及`reduce`,用于将函数应用于序列的累积操作。 6. **装饰器**:Python 2.5引入了正式的装饰器语法,允许程序员...
5. **新的内置函数**:例如`fold()`(在Python 3.7中称为`functools.reduce()`),用于对序列进行累积操作。 6. **字典更新视图**:允许直接在字典视图上进行修改,如`d.viewitems().update(...)`。 7. **安全的...
`coveo_functools`是Coveo公司开发的一个Python实用工具库,它扩展了Python内置的`functools`模块,提供了额外的功能和便利性。`functools`模块本身是Python标准库的一部分,专注于函数式编程,包括高阶函数如`...
《PyPI上的backports.functools_lru_cache-1.3.tar.gz:Python高效缓存技术解析》 在Python编程中,高效的代码执行是至关重要的,特别是在处理大量数据或者需要频繁重复计算的场景下。PyPI(Python Package Index)...