Python之functools模块使用方法

本文介绍了Python的functools模块,重点讲解了reduce方法用于累积运算,partial方法创建偏函数,以及lru_cache装饰器实现函数缓存。讨论了lru_cache在斐波那契数列中的应用和其限制,如无缓存过期和清除操作,适用于单机环境的空间换时间优化。

functools

reduce方法:
    reduce方法,顾名思义就是减少
    reduce(function,sequence[,initial]=>value)
    可迭代对象不能为空;初始值没提供就在可迭代对象中取一个元素

from functools import reduce
nums = [6,9,4,2,4,10,5,9,6,9]
print(nums)
[6, 9, 4, 2, 4, 10, 5, 9, 6, 9]
print(sum(nums))
64
print(reduce(lambda val,x:val + x,nums))
64
print(reduce(lambda val,x:val - x,nums))
-52

partial方法:
    偏函数,把函数部分的参数固定下来,相当于为部分的参数添加了一个固定的默认值,形成一个新的函数并返回
    从partial生成的新函数,是对原函数的封装

print(newadd(7))
12
print(newadd(7,y = 6))
13
print(newadd(y=10,x = 6))
16

import inspect
print(inspect.signature(newadd))
(x, *, y=5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值