函数的partial应用
函数在执行时,要带上所有必要的参数进行调用。但是,有时参数可以在函数被调用之前提前获知。这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用。
partial属于模块functools
from functools import partial
偏函数简单例子
#FileName:p.py
#输入模块(偏函数)
from functools import partial
#输入模块(操作函数)
from operator import add,mul
#自定义函数,用作片函数
def sum_func(x,y,z):
return x + y + z
print()
print('创建偏函数add2014----------------------')
#创建偏函数add
add2014 = partial(add,2014) #等价于add2014 = add(2014,x)
#多次使用偏函数,打印相加的数值
print('输出调用偏函数的后的值:-------------------')
print('add2014(10000) = %d'%add2014(10000)) #等价于add(2014,10000) #= 12014
print('add2014(2014) = %d'%add2014(2014)) #等价于add(2014,2014) #=4028
print()
print('创建偏函数mul2014---------------------')
#创建另外一个偏函数mul
mul2014 = partial(mul,2014) #等价于 mul2014 = mul(2014,x)
print('调用偏函数mul2014---------------------') #等价于mul(2014,10000) = 20140000
print('mul2014(10000) = %d'%mul2014(10000))
print()
print('使用自定函数创建偏函数--------------------')
#调用自定义函数,创建偏函数
sum2014 = partial(sum_func,2014) #等价于sum(2014,y,z)
print('调用函数sum2014----------------------')
print('sum2014(10000,100000) = %d'%sum2014(10000,100000))
print()
#使用partial进行进制转换
#调用内建函数int进行进制转换
bin2dec = partial(int,base = 2) #等价于int(string,2) 将2 赋值给int(x,base)中base
如果没有指定参数名,会被传给第一个参数
print(bin2dec(2))
#使用内建函数int(x,base)进制转换
print(int('111111',2))