python functools

本文深入探讨Python中functools模块的高级函数特性,包括partial、reduce、update_wrapper、wraps、total_ordering和ncmp_to_key等函数的用法和应用场景,帮助开发者更好地理解和运用这些函数来简化代码逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

共6个方法:
partial
固化部分参数
如 fun(x1,x2,x3,x4):
print x1,x2,x3,x4
f=partial(fun,1,2)
f(3,4) 输出 1,2,3,4
f=partial(fun,x1=1,x2=2)
要以命名参数方式调用 f(x3=3,x4=4) 输出 1,2,3,4 f(3,4) 异常
可以这样理解 使用partial 对参数赋值后,参数性质取决于赋值方式,不论是位置参数
还是命名参数其顺序不变
reduce
和内建方法一样
update_wrapper
update_wrapper(wrapper,wrapped,assigned = WRAPPER_ASSIGNMENTS,updated
=WRAPPER_UPDATES)
将wrapped中的WRAPPER_ASSIGNMENTS = ('module', 'name', 'doc')
赋值给wrapper
将wrapped中的WRAPPER_UPDATES = ('dict',)update 到 wrapper

wraps
wraps(wrapped,assigned = WRAPPER_ASSIGNMENTS,updated = WRAPPER_UPDATES)
实质是封装了update_wrapper 固化了参数
return partial(update_wrapper, wrapped=wrapped,
assigned=assigned, updated=updated)

total_ordering
这个装饰器在特定的场合有一定用处,它的作用是为实现了至少ltle
gtge其中一个的类加上其他的比较方法,这是一个类装饰器

cmp_to_key
Convert a cmp= function into a key= function

cmp(self,other) 有三种返回值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值