zoukankan      html  css  js  c++  java
  • functools.partial偏函数的使用

    https://docs.python.org/3.6/library/functools.html

    从名字可以看出,该函数的作用就是部分使用某个函数,即冻结住某个函数的某些参数,让它们保证为某个值,并生成一个可调用的新函数对象,这样你就能够直接调用该新对象,并且仅用使用很少的参数

    该参数源码:

    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

    举个简单例子:

    >>> from functools import partial
    >>> baseTwo = partial(int, base=2) #实现将二进制字符串转成int整型
    >>> baseTwo('10010')
    18
    >>> int('10010')
    10010

    等价于:

    >>> int('10010', base=2)
    18

    这里实现的就是部分使用int()函数,一般来说我们使用int()函数是将10进制的字符串转为整型

    如果我们想要让其实现将2进制的字符串转为整型,就是传入参数base=2,但是不想每次运行的时候都要传入该参数base,做法就是使用partial冻结其base参数值为2,然后返回一个新的函数对象。然后就调用该对象即可

  • 相关阅读:
    使用RecyclerView打造Gallery
    Retrofit简介与使用方法(翻译)
    迷宫实现递归版本C++
    牛客笔试题
    牛客笔试题---求最长重复词长度之和
    C++句柄解析
    C++双向循环链表实现
    String C++完整实现。
    String写时拷贝实现
    顺序表操作补充(查找方法增加)
  • 原文地址:https://www.cnblogs.com/wanghui-garcia/p/11264792.html
Copyright © 2011-2022 走看看