• Python 之匿名函数和偏函数


    匿名函数与偏函数

    匿名函数

    Python允许使用lambda关键字创造匿名函数,lambda表达式用于定义匿名函数,它返回可调用的函数对象,语法如下:

    lambda arg1, arg2, … : expression
    例如;

    add = lambda a,b=2 : a+b
    
    print(add(3))       # 5
    print(add(3, 10))   # 13

    匿名函数具有比较浓郁的函数式编程风格,例如:

    foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
    print filter(lambda x: x % 3 == 0, foo)
    print map(lambda x: x % 3 == 0, foo)

    使用lambda表达式,可以避免定义函数,从而使得代码更简洁。


    偏函数

    Python中的函数参数可以带默认值,这样能够降低函数调用的复杂度,例如:

    def add(a, b, c=100):
        return a+b+c
    
    print(add(40, 30))  # 170

    当函数的参数个数太多,需要简化时,使用偏函数(functools.partial)可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单

    from functools import partial
    
    def add(a, b, c=100):
        return a+b+c
    
    
    plus = partial(add, c=100)
    
    print(plus(40, 30))     # 170
    print(plus(-20, 30))    # 110

    上面的例子中partial(add, c=100)使用了关键字参数c=100,如果只是简单的使用partial(add, 100),那么100做为位置参数,会被认为是参数a的固定值,。例如:

    from functools import partial
    
    def add(a, b, c=100):
        return a+b+c
    
    
    plus = partial(add, 100)
    
    print(plus(40))     # 240
    print(plus(40, 50)) # 190

    这里,plus(40),传入的40会被赋值给b,而c使用默认参数100;

  • 相关阅读:
    js触摸屏案例
    Docker
    Docker 镜像加速
    Docker 命令大全
    linux gpasswd
    Docker基础教程
    PHP输出毫秒时间戳
    PHP Variable handling 函数
    Partition Array by Odd and Even
    Median
  • 原文地址:https://www.cnblogs.com/chenny7/p/4218426.html
Copyright © 2020-2023  润新知