Python3 偏函数(Partial function)
2017-08-10 22:29:19
•
阅读
打赏
函数在执行时,要带上所有必要的参数进行调用。但是,有时参数可以在函数被调用之前提前获知。
这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用。functools.partial就能帮我们创建这样的一个新的函数
int()函数把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换成整数:
int('12345') #输出12345
int()函数还有一个额外的base参数,默认值为10。如果传入base参数,就可以做N进制的转换:
int('12345', base=8) #输出5349
int('12345', 16) #输出74565
如果要经常转换二进制字符串,每次都传入int(x, base=2)比较麻烦,于是,定义一个int2()的函数,默认把base=2传进去:
def int2(x, base=2):
return int(x, base)
#这样,转换二进制就方便了
print(int2('1000010')) #输出66
functools.partia
l就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),直接使用下面的代码创建一个新的函数int2:
import functools
int2 = functools.partial(int, base=2)
print(int2('1000010')) #输出66
print(int2('1000101')) #输出69
functools.partial的作用就是,给一个函数的某些参数设置默认值,返回一个新的函数,调用这个新函数更简单。
注意到上面的新的int2函数,仅仅是把base参数重新设定默认值为2,但也可以在函数调用时传入其他值:
int2('1000000', base=10)
1000000
相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型