Python学习之 ---functools+reduce方法+ partial偏函数+lru_cache缓存复用

之前在将装饰器时使用到了functool里的wpapsfunctool 里还有几个很重要的部分值得深入学习 .包括:reduce方法partial偏函数lrc _cache_接下来将对这些方法进行详细的叙说:reduce方法reduce方法,顾名思义就是减少reduce(function, sequence[, initial]) -> value ★★★...
摘要由CSDN通过智能技术生成

之前在将装饰器时使用到了functool里的wpapsfunctool 里还有几个很重要的部分值得深入学习 .

  • 包括:
    • reduce方法
    • partial偏函数
    • lrc _cache_

接下来将对这些方法进行详细的叙说:

  • reduce方法
    • reduce方法,顾名思义就是减少
    • reduce(function, sequence[, initial]) -> value ★★★★
    • 可迭代对象不能为空;初始值没提供就在可迭代对象中取一个元素
from functools import reduce 
print(reduce(lambda x,y:x+y, range(5)))#先传入0,和1,相加得到的1 ,此时x赋值为1,后传入2,与x=1 相加,而后在次赋值给x,在传入一个数3,依次往后直到结束.
print(sum(range(5),10))  # sum函数的带初始值相加
print(reduce(lambda x,y:x*y,range(1,5),10)) # reduce 函数带初始值的相乘
>>> 
10
20
240
# reduce  的函数定义
# def reduce(function, iterable, initializer=None):
    it = iter(iterable)
    if initializer is None:
        value = next(it)
    else:
        value = initializer
    for element in it:
        value = function(value, element)
    return value

  • partial方法

  • 偏函数,把函数部分的参数固定下来,相当于为部分的参数添加了一个固定的默认值,形成一 个新的函数并返回

  • 从partial生成的新函数,是对原函数的封装 ★★★★

  • partial方法举例一

    import functools
    def add(x, y) -> int: 
        return x + y
    newadd = functools.partial(add, y=5)  #偏函数返回的是新函数  
    print(newadd(7))
    print(newadd(7, y=6))
    print(newadd(y=10, x=6))
    import inspect
    print(inspect.signature(newadd))
    >>>
    12
    13
    16
    (x, *, y=5) -> int   
    

partial方法举例二:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值