Python模块(functools)
来源:互联网 发布:手机淘宝积分怎么领 编辑:程序博客网 时间:2024/05/20 16:00
functools.partial(func[,*args][, **keywords])
int()函数提供额外的base参数,默认值为10。如果传入base参数,就可以做N进制的转换
假设要转换大量的二进制字符串,每次都传入int(x, base=2)非常麻烦,于是,我们想到,可以定义一个int2()的函数,默认把base=2传进去:
def int2(x, base=2): return int(x, base)
functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2:
>>> import functools>>> int2 = functools.partial(int, base=2)>>> int2('1000000')64
functools.update_wrapper(wrapper, wrapped[, assigned][, updated])
update_wrapper函数,它可以把被封装函数的__name__、__module__、__doc__和 __dict__都复制到封装函数去:
#-*- coding: gbk -*-def thisIsliving(fun): def living(*args, **kw): return fun(*args, **kw) + '活着就是吃嘛。' return living@thisIslivingdef whatIsLiving(): "什么是活着" return '对啊,怎样才算活着呢?'print whatIsLiving()print whatIsLiving.__doc__printfrom functools import update_wrapperdef thisIsliving(fun): def living(*args, **kw): return fun(*args, **kw) + '活着就是吃嘛。' return update_wrapper(living, fun)@thisIslivingdef whatIsLiving(): "什么是活着" return '对啊,怎样才算活着呢?'print whatIsLiving()print whatIsLiving.__doc__结果:
对啊,怎样才算活着呢?活着就是吃嘛。
None
对啊,怎样才算活着呢?活着就是吃嘛。
什么是活着
functools.wraps(wrapped[, assigned][, updated])
wraps函数,它将update_wrapper也封装了进来#-*- coding: gbk -*-from functools import wrapsdef thisIsliving(fun): @wraps(fun) def living(*args, **kw): return fun(*args, **kw) + '活着就是吃嘛。' return living@thisIslivingdef whatIsLiving(): "什么是活着" return '对啊,怎样才算活着呢?'print whatIsLiving()print whatIsLiving.__doc__结果还是一样的:
对啊,怎样才算活着呢?活着就是吃嘛。
什么是活着
functools.cmp_to_key(func)
将普通的比较函数转换为key function
sorted(iterable, key=cmp_to_key(locale.strcoll)) # locale-aware sort order这里普通的比较函数需要满足:有两个参数,当left>right,返回正值,相等返回0,小于返回负值
functools.total_ordering(cls)
提供了对类对象更加丰富的比较,例如大于,小于,不小于,不大于
decorator类只需要实现__lt__(), __le__(), __gt__(), or __ge__()其中的一个,以及实现__eq__()。然后total_ordering会自动讲其他比较方法补全。
例如
@total_orderingclass Student: def __eq__(self, other): return ((self.lastname.lower(), self.firstname.lower()) == (other.lastname.lower(), other.firstname.lower())) def __lt__(self, other): return ((self.lastname.lower(), self.firstname.lower()) < (other.lastname.lower(), other.firstname.lower()))
functools.reduce(function, iterable[, initializer]
参考:
http://blog.csdn.net/wyabc1986/article/details/7432141
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819893624a7edc0e3e3df4d5d852a352b037c93ec000
https://docs.python.org/2/library/functools.html
0 0
- python模块 - functools模块
- Python的functools模块
- Python的functools模块
- Python的functools模块
- Python的functools模块
- Python的functools模块
- Python模块(functools)
- Python的functools模块
- python functools模块
- PYTHON-FUNCTOOLS模块
- Python functools模块学习总结
- python的functools进阶模块
- Python的functools模块详解
- Python装饰器及functools模块
- python 装饰器和 functools 模块
- python的functools模块常用方法介绍
- functools模块
- functools模块
- Java IO 目录
- 关于Java值传递的故事
- log4cpp之快速入门
- static作用(修饰函数、局部变量、全局变量)
- 斯坦福大学自然语言处理第二课“文本处理基础(Basic Text Processing)”
- Python模块(functools)
- 【使用JSOUP实现网络爬虫】获取所有链接
- 黑马程序员——ios基础---Objective-C:ARC、类别、Block、协议
- Hdoj 5410 CRB and His Birthday【背包变形】
- kafka学习(一)
- mysql中的Group by与having理解
- POJ 2425 && HDU 1524 A Chess Game(博弈论)
- Java多线程 -- 生产者消费者模型
- zeroconf介绍