概念:
把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
形式:
functools.partial(函数名,参数名=默认参数)
举例说明:
int函数可以将一个字符串转换为相应的数值。例如:
int(‘12345’,base=10 )
结果为12345
假设要转换大量的二进制字符串,希望省略base参数,设置为默认的2
可以编写一个函数叫int2
- def int2(x,base=2):
- return int(x,base)
functools.partial帮助建立一个偏函数,不需要我们自己定义int2()
- import functools
- int2 = functools.partial(int,base=2)
- int2('1000000')
- #答案为64
深入理解偏函数
偏函数仅仅把参数重新设定为一个默认值,仍然可以在调用函数时,重新设定。
int2('1000',base=10)
偏函数可以接收如下三种参数
int2(‘10010’)相当于
kw = {‘base’: 2}
int(‘10010’,**kw)
max2 = functools.partial(max,10)
10将被当做*args的一部分自动加到左边 也就是max2(5,6,7)
相当于
args = (10,5,6,7)
max(*args)
当函数的参数个数太多,需要简化时,使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。
学会了就点个赞把。