Python偏函数及其使用

简介: Python偏函数及其使用

首先,先来看一下我们的int函数

int作为函数时有个神奇功能,将字符串变为数,比如"123",返回值123。这是一个整型数。


OK,我们再想一下,int(123)当然返回的是123了。


如果输入是:int("123",8),返回是83

>>int("123",8)

83


意思是返回8进制的123在十进制下的表示。


这个8,在int参数中,变量名是base,也可以写成:int("123",base= 8)

如果输入int(123,8) 返回错误:


TypeError: int() can't convert non-string with explicit base


好的,我们现在搞搞偏函数 funtools里面给了一个函数叫partial,看看它干了啥:

import functools
int2=functools.partial(int,base=2)


#functols.partial返回的是一个函数 这里返回了int

#就可以直接调用int2函数

int2('1000000')


用数学函数表示,就是

funcname1 = functools.partial(funcname1, varname = value),  funcname2(**) = funcname1(**, varname = value)。

好的,现在我们有了对一个参数的函数的变换,那么如果函数有多个参数,怎么办呢?

再看一个示例:


#偏函数的示范
import functools
def max(a,b,c):
    print(c)
    if a>=b:
        if b>=c:
            return a
        elif a>= c:
            return a
        else:
            return c
    else:
        if a>=c:
            return b
        elif b>=c:
            return b
        else:
            return c
max3_4 = functools.partial(max,c=4, b=3)
print(max3_4(6))


注意, 原来的顺序是b c 现在partial里面用了c b,这样定义,在传递给新函数max3_4时,就会将3和4作为这个函数的kwarg**传递进去了。而python中,kwarg**是作为这个函数的最后一组参数传递的。


多说一句,这东西有什么用呢?在你需要调试一些东西的时候,比如你总要输入一大堆参数,但是本次调试其实只有一个参数变化,那你可以定义一个偏函数,简略的写一个参数进去就好了。

如果是日常开发,并且你不习惯于写一堆注释的时候,慎用。因为谁也不确定自己是否可以记得起这次定义偏函数都定义了一些什么。

目录
相关文章
|
6天前
|
Python
Python学习 -- 高阶、闭包、回调、偏函数与装饰器探究
Python学习 -- 高阶、闭包、回调、偏函数与装饰器探究
23 0
|
7月前
|
Python
Python学习 -- 高阶、闭包、回调、偏函数与装饰器探究
Python学习 -- 高阶、闭包、回调、偏函数与装饰器探究
31 0
|
7月前
|
Python
python之有关匿名函数和偏函数的定义,优点,以及使用方法
python之有关匿名函数和偏函数的定义,优点,以及使用方法
|
11月前
|
数据处理 Python
Python中的偏函数(Partial Functions)
Python中的偏函数是来自函数式编程的一个强大工具,它的主要目标是减少函数调用的复杂性。这个概念可能起初看起来有点困难理解,但一旦你明白了它的工作方式,它可能会成为你的编程工具箱中的重要组成部分。
|
Python
Python(6)高阶函数之装饰器和偏函数
Python(6)高阶函数之装饰器和偏函数
86 0
|
Python
python偏函数如何理解
1、偏函数,是对原始函数的二次封装,是将现有函数的部分参数预先绑定到指定值,从而获得新的函数。 2、定义偏函数,需要使用partial关键字(位于functools模块中。
79 0
python偏函数如何理解
|
Python
Python编程:partial偏函数
Python编程:partial偏函数
|
存储 缓存 算法
【Python高级编程】—— 函数式编程总结(生成器、迭代器、匿名函数、高阶函数、返回函数、闭包、装饰器、偏函数)
Python函数式编程的一般概念及特点, 迭代器、生成器表达式、内置函数、常用高阶函数、递归与归约、实用模块和装饰器的用法, 以及避开Python严格求值顺序的变通方法、Web服务设计方法和一些优化技巧。
238 1
【Python高级编程】—— 函数式编程总结(生成器、迭代器、匿名函数、高阶函数、返回函数、闭包、装饰器、偏函数)
|
Python
【Python函数式编程】——偏函数(Partial function)
 Python的 functools 模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。要注意,这里的偏函数和数学意义上的偏函数不一样。
168 0
【Python函数式编程】——偏函数(Partial function)
|
分布式计算 Java Python
python3入门笔记四之函数式编程---高阶函数,返回函数,匿名函数,装饰器,偏函数
函数式编程 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言 高阶函数(Higher-order function) 特点: 变量可以指向函数 即 函数本身也可以赋值给变量 x=abs x(-10) #10 函数名也是变量 abs = 10 abs(-10) # TypeError: 'int' object is not callable 注:由于abs函数实际上是定义在import builtins模块中的,所以要让修改abs变量的
146 0