zoukankan      html  css  js  c++  java
  • python reduce和偏函数partial

    functools模块

    reduce方法:

    • reduce方法
      • reduce方法,顾名思义就是减少
      • 可迭代对象不能为空,初始值没提供就在可迭代对象中去一个元素
    from functools import reduce
    nums = [6,9,1,3,5,6,1]
    print(nums)
    print(sum(nums))
    print(reduce(lambda val,x: val+x,nums))

    partial方法:

    • 偏函数,把函数部分的参数固定下来,相当于为部分的参数添加了一个固定的默认值,形成一个新的函数并返回
    • 从partial生成的新函数,是对原函数的封装
    import functools
    def add(x,y):
        return x+y
    newadd = functools.partial(add,y=5)
    
    print(newadd(7))
    print(newadd(7,y=6))
    print(newadd(y=10,x=6))

    源代码

    def partial(func, *args, **keywords):
        def newfunc(*fargs, **fkeywords): # 包装函数
            newkeywords = keywords.copy()
            newkeywords.update(fkeywords)
            return func(*(args + fargs), **newkeywords)
        newfunc.func = func # 保留原函数
        newfunc.args = args # 保留原函数的位置参数
        newfunc.keywords = keywords # 保留原函数的关键字参数参数
        return newfunc
  • 相关阅读:
    js基本
    js循环语句
    常用的css
    Linux使用host-only的方式上网
    Struts2的文件上传及错误国际化显示
    ThinkPHP3.2.2 大写子母的用法及含义
    php中验证码不显示问题
    AOP中的ASPECTJ
    CGLIB和JDK代理
    mavne的创建
  • 原文地址:https://www.cnblogs.com/xzkzzz/p/11382579.html
Copyright © 2011-2022 走看看