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 ...
随机推荐
- 【学习笔记】---老男孩学Python,day1
老早同学就推荐自己学编程了,因为各种事耽误了几年的时间,也可以说自己没有居安思危的意识吧… 直到今年2月份决定掏钱学线上课,但是又被兼职打断了,公司忙,兼职事多,拖来拖去只能把课程延期.这一拖就到了五 ...
- Python 多线程、多进程 (二)之 多线程、同步、通信
Python 多线程.多进程 (一)之 源码执行流程.GIL Python 多线程.多进程 (二)之 多线程.同步.通信 Python 多线程.多进程 (三)之 线程进程对比.多线程 一.python ...
- linux下lamp环境修改网站根目录
Apache默认的网站目录是在/var/www/html,我们现在要把网站目录更改成 /var/www 目录下,操作如下: 1.修改httpd,conf文件 vi /etc/httpd/conf/ht ...
- Android 2018最新的三方库
文章出处https://blog.csdn.net/qq_32368129/article/details/78749880 1.MaterialStepperView 它是用Material Des ...
- Android系统启动流程(四)Launcher启动过程与系统启动流程
此前的文章我们学习了init进程.Zygote进程和SyetemServer进程的启动过程,这一篇文章我们就来学习Android系统启动流程的最后一步:Launcher的启动流程,并结合本系列的前三篇 ...
- springcloud 入门 5 (feign源码分析)
feign:(推荐使用) Feign是受到Retrofit,JAXRS-2.0和WebSocket的影响,它是一个jav的到http客户端绑定的开源项目. Feign的主要目标是将Java Http ...
- centos安装pip3
安装pip3 1:安装依赖 yum install openssl-devel -y yum install zlib-devel -y 2:安装setuptools wget --no-check- ...
- LeetCode题解之Linked List Cycle
1.题目描述 2.问题分析 使用快慢指针方法,一个快指针,一个慢指针,如果到某个时候,快指针追上了慢指针,则说明有环存在. 3.代码 bool hasCycle(ListNode *head) { i ...
- Oracle EBS OPM 子库存转移
--子库存转移 --created by jenrry DECLARE l_mtl_txn_rec mtl_transactions_interface%ROWTYPE; l_mtl_txn_lot_ ...
- 理解lua中 . : self
前言 在LUA中,经常可以看到:. self,如果你学习过Java或C#语言,可以这样理解 .对于c#和java的静态方法 :相当于是实例方法 今天在CSDN上看到一篇博客写的很清楚,转载过来 原文出 ...