什么是偏函数?
就是当函数的参数太多的时候,需要简化,使用(functools.partial)可以创建一个新的函数,这个函数可以固定住原来的参数的部分参数,从而在调用的时候更加的简单。
举个例子:
int()函数可以把字符串转化成整数,当传入字符串的时候 ,int()函数默认以十进制的方式转换
s = int("12345") print(s)#12345
int()函数还提供了base参数默认是10进制,如果传入base参数,可以做N进制的转换
s = int("12345",base=16) print(s) #输出:74565
如果传入大量的N进制的字符串的话,可以定义一个函数,把base=N传进去
def int2(x,base=2): return int(x,base) print(int2("101010"))#42
####################################
def int2(x,base=16):
return int(x,base)
print(int2("123456"))#1193046
总结:functolls.partial的作用就是把一个函数的某些参数设置为默认值,然后返回一个新的函数,然后再调用这个函数。
在创建偏函数的时候,实际上可以接收函数的参数 *args **kw。
传入int2 = functools.partial(int,base=2)
相当于:kw = {"base":2} int("10010",**kw)