Python2.7-functools
functools 模块,是一个高阶函数模块,很有用,尤其是 partial 函数(类似函数定义了默认参数)和装饰器属性更新函数。装饰器在实现的时候,被修饰后的函数其实已经是另外一个函数了(函数名等函数属性会发生比变化)。因此,为了不影响,python使用wraps来消除这样的副作用,因此,在我们写装饰器的时候,最好在实现之前加上wraps,它能保留原有函数的属性
functools.cmp_to_key(func):把一个旧式的比较函数(接收两个参数比较)转换成一个关键字函数(接收一个参数,返回一个可以用作排序关键字的值),因为在 python3 中不再支持比较函数,本质上是一样的,只是为了统一,简化
functools.total_ordering(cls):它是一个类装饰器。只要一个类定义了自己的一个比较函数(大于,小于,大于等于,小于等于至少其中一个),同时还定义了相等(__eq__),那就可以用 total_ordering 对这个类进行装饰,把其余没定义的比较函数自动补充
functools.reduce(function, iterable[, initializer]):同普通的 reduce(),定义这个方法是为了更好兼容 python3
functools.partial(func[,*args][, **keywords]):返回一个 partial 对象(部分参数默认的函数),是一个可以被调用的,同时 args 和 keywords 参数默认的函数。当被调用时如果传入额外参数,就等同于对原函数传入默认参数加上额外参数
functools.update_wrapper(wrapper, wrapped[, assigned][, updated]):使一个被装饰过的函数看起来和原来一样( __name__,__module__,__doc__属性等),普通的装饰后,原函数的属性会改变。wrapper 是装饰函数,wrapped 是被装饰函数,两个可选参数是指定哪些属性需要被更新过来
functools.wraps(wrapped[, assigned][, updated]):它是一个函数装饰器,是 update_wrapper 的简洁用法,update_wrapper 需要在装饰函数中以语句形式写出来,而 wraps 则是以装饰函数的形式再装饰装饰函数
Python2.7-functools的更多相关文章
- yum安装的时候报错,关于python的函数库
我在执行yum -y install nc命令的时候出现如下报错 There was a problem importing one of the Python modulesrequired to ...
- TensorFlow入门——bazel编译(带GPU)
这一系列基本上是属于我自己进行到了那个步骤就做到那个步骤的 由于新装了GPU (GTX750ti)和CUDA9.0.CUDNN7.1版本的软件,所以希望TensorFlow能在GPU上运行,也算上补上 ...
- Python2.4-原理之函数
此节来自于<Python学习手册第四版>第四部分 一.函数基础 函数的作用在每个编程语言中都是大同小异的,,这个表是函数的相关语句和表达式. 1.编写函数,a.def是可执行代码,pyth ...
- Python2.x和3.x主要差异总结
本文部分转载自http://my.oschina.net/chihz/blog/123437,部分来自自身修改 开始使用Python之后就到处宣扬Python如何如何好,宣传工作的一大重要诀窍就是做对 ...
- windows7__32位下安装python2.6.6
1.下载windows7__32位的python2.6.6.mis文件,直接运行.默认安装即可 2.设置系统环境变量,目的在cmd下能敲python后能够自动调用到安装目录程序 设计如下:(我的电脑- ...
- python functools模块
functools.partial 作用: functools.partial 通过包装手法,允许我们 "重新定义" 函数签名 用一些默认参数包装一个可调用对象,返回结果是可调用对 ...
- python2 与 python3的区别
python2 与 python3的区别 几乎所有的python2程序都需要一些修改才能正常的运行在python3的环境下.为了简化这个转换过程,Python3自带了一个2to3的实用脚本.这个脚本会 ...
- python2 与 python3 语法区别
python2 与 python3 语法区别 概述# 原稿地址:使用 2to3 将代码移植到 Python 3 几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下.为 ...
- Python常用库之functools
functools 是python2.5被引人的,一些工具函数放在此包里. python2.7中 python3.6中 import functools print(dir(functools)) [ ...
- Python3与Python2的差异
基于python3浅谈python3与python2的差异.由于现今主流Python3,但是之前用Python2做的项目,还得维护,所以作为python工作者,不免要了解其中差异,其中,Python2 ...
随机推荐
- LOJ1070(SummerTrainingDay05-B 矩阵快速幂)
Algebraic Problem Given the value of a+b and ab you will have to find the value of an+bn. a and bnot ...
- 常见Java问题
1.泛型的好处 保护了类型安全 避免了强制类型转化 2.final关键字的作用 final修饰的属性是常量 final修饰的方法不可被重写 final修饰的类不能被继承,如:String 3.静态变量 ...
- java post请求的表单提交和json提交简单小结
在java实现http请求时有分为多种参数的传递方式,以下给出通过form表单提交和json提交的参数传递方式: public String POST_FORM(String url, Map< ...
- Bootstrap4响应式布局之栅格系统
前面说了Bootstrap4的下载和简单使用,现在我们接着往下学习,Bootstrap4的响应式布局主要依靠栅格系统来实现的.面老K先来讲解一下Bootstrap4的栅格系统,让你能够更快的了解Boo ...
- html 手机web超出屏幕宽度的内容不换行,并产生横向滚动条
html 手机web超出屏幕宽度的内容不换行,并产生横向滚动条 white-space: nowrap;overflow-x: scroll;
- IE9+下如何让input的placeholder样式生效
:-ms-input-placeholder.el-input__inner { color: #97a8be;}:-ms-input-placeholder.el-textarea__inner{ ...
- Nginx控制客户端请求的速率
使用ngx_http_limit_req_module模块的两个参数 ngx_http_limit_req_module模块用于限制每个IP访问每个定义key的请求速率 1.limit_req_zon ...
- 关于ArrayAdapter的getCount()的方法会造成空指针异常的分析
在继承了ArrayAdapter重新getCount()的方法后,比如 public int getCount() { return 3; } 若在活动中调用setAdapter()的方法前,List ...
- 2018-10-19 00:13:35 ArrayList
获取集合元素的长度用的是size方法. 传入Object类型的值,返回boolean值的remove方法,含义是判断是否删除成功. 传入索引值的remove方法,返回的是被删除的元素. 修改值得set ...
- 【Redis】Redis学习(五) Redis cluster模式详解
一般情况下,使用主从模式加Sentinal监控就可以满足基本需求了,但是当数据量过大一个主机放不下的时候,就需要对数据进行分区,将key按照一定的规则进行计算,并将key对应的value分配到指定的R ...