python递归函数详解,python时间函数详解
特殊功能便利功能
Python的functools模块提供了很多有用的函数,其中一个就是部分函数。注意,这里的偏函数不同于数学意义上的偏函数。
在介绍函数参数的时候,我们说过通过设置参数的默认值,可以降低函数调用的难度。部分功能也可以做到这一点。例子如下:
int()函数可以将字符串转换成整数。当只传入一个字符串时,默认情况下,int()函数转换为decimal:
Int(12345)12345但是Int()函数还提供了一个额外的基本参数,默认值为10。如果传入基本参数,可以进行N进制转换:
Int (12345 ,base=8) 5349 Int (12345 ,16) 74565假设要转换大量的二进制字符串,每次传入int(x,base=2)非常麻烦。所以,我们认为可以定义一个int2()的函数,默认传入base=2。
Def int 2 (x,base=2): return int (x,base)这样,我们转换二进制就非常方便了:
int 2( 100000 )64 int 2( 1010101 )85 functools . partial有助于我们创建分部函数。我们不需要自己定义int2(),但是我们可以使用下面的代码直接创建一个新的函数int2:
import func tools int 2=functools.partial(int,base=2)int 2( 100000 )64 int 2( 1010101 )85所以,简单总结一下func tools . partial的作用就是固定一个函数的一些参数(也就是设置默认值),返回一个新的函数,调用
请注意,上面的新int2函数只是将基本参数重置为默认值2,但是在调用该函数时也可以传入其他值:
Int 2 (100000 ,base=10) 100000最后,在创建分部函数时,实际上可以收到3个参数:function object,*args和**kw。传入时:
Int=functools.partial (Int,base=2)实际上固定了int()函数的关键参数base,即:
Int2(10010 )相当于:
Kw={base: 2 }int(10010 ,**kw)当传入:
Max2=functools.partial(max,10)实际上会自动将10加到左边作为*args的一部分,即:
Max (5,6,7)相当于
Args=(10,5,6,7)max(*args)结果是10。
转载于:https://www.cnblogs.com/mirrorlake/p/7863025.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。