• Python学习札记(二十七) 函数式编程8 偏函数


    偏函数

    NOTE

    1.int()函数提供额外的base参数,默认值为10。如果传入base参数,就可以做N进制的转换:

    #!/usr/bin/env python3
    
    import functools
    
    def main():
    	print(int(input(), base=2))
    	print(int(input(), base=16))
    
    if __name__ == '__main__':
    	main()
    
    sh-3.2# ./partial1.py 
    10
    2
    20
    32
    

    可以看到,后面的base指明了输入的进制,并将其转换为10进制。

    如果要转换大量的二进制数,就很麻烦,一般使用函数封装起来,调用就可以了:

    def int2(a, b):
    	return int(a, b)
    
    10
    2
    

    2.functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。

    eg.固定二进制:

        int_2 = functools.partial(int, base=2) # int函数, 固定参数base=2
    
        print(int_2('10001'))
        print(int_2('100'))
    
    sh-3.2# ./partial1.py 
    17
    4
    

    传入两个参数,一个参数指向函数,另外一个参数(本质上是一个字典)指明固定的形参;函数结束之后返回固定特定形参的新函数。

    相当于

    kw = { 'base': 2 }
    int(input(), **kw)
    

    如果是max这样的函数的话,加入一个参数相当于:

    	max_2 = functools.partial(max, 10)
    	print(max_2(5, 6, 7))
    
    10
    

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

    2017/2/20

  • 相关阅读:
    mysql联合查询更新数据库例子
    jquery绑定事件时如何向事件函数里传参数
    bootstrap栅格例子
    myeclipse 给类与方法添加注解模板方法
    response 返回js的alert()语句,中文乱码如何解决
    h5-圆角的使用-案例安卓机器人
    h5-拖拽接口
    h5-应用级缓存
    h5-sessionStorage储存的使用
    h5-localStorage储存的使用
  • 原文地址:https://www.cnblogs.com/qq952693358/p/6421855.html
Copyright © 2020-2023  润新知