• ###柯里化 f(x,y) -> g(x)(y)


    
    
     
    
    
    
    python 柯里化 f(x,y) -> g(x)(y)

    def
    bigger(x): def inner_bigger(y): return y>x return inner_bigger list(filter(bigger(5),range(10))) #filter返回一个迭代器,用list接收 [6, 7, 8, 9] list(filter(bigger(3),range(10))) [4, 5, 6, 7, 8, 9]
    实例化一下:
    bigger_3 = bigger(3)
    bigger_3(4)

    True
    bigger_3(2)
    False

    使用partial 也可以实现柯里化: 用于固定某些参数
    def inc(f,x):
        return f+x
    def bigger(x,y):
        return x >y
    from functools import partial
    help(partial)
    Help on class partial in module functools:
    
    class partial(builtins.object)
     |  partial(func, *args, **keywords) - new function with partial application
     |  of the given arguments and keywords.
     |  
    
    partial(bigger,y=3)
    functools.partial(<function bigger at 0x7f264455ad08>, y=3)
    bigger_3 = partial(bigger,y=3)
    callable(bigger_3) #判断一个函数是否可以被调用 用callable 
    True

    bigger_3(2)  #x=2 > y=3 返回false
    False
    bigger_3(4)  #x=4 > y=3 返回True
    True

     def mang_args(x,y,z,a,b,c):
    ...     print ("x is {}".format(x))
    ...     print ("y is {}".format(y))
    ...     print ("z is {}".format(z))
    ...     print ("a is {}".format(a))
    ...     print ("b is {}".format(b))
    ...     print ("c is {}".format(c))
    
    fn1 = partial(mang_args,a=1,b=2,c=3)
    fn1(4,5,6)
    x is 4
    y is 5
    z is 6
    a is 1
    b is 2
    c is 3


     
  • 相关阅读:
    查看zookeeper的注册信息
    troubleshooting -zk 报错解决方案
    查看状态信息
    kafka
    查看进程jps的脚本
    大数据项目.
    hadoop支持LZO压缩配置
    linux 增加行号 vim ~/.vimrc
    CDH环境搭建遇到的问题
    hadoops的版本datanode和namenode的版本
  • 原文地址:https://www.cnblogs.com/tom-li/p/5287561.html
Copyright © 2020-2023  润新知