什么是偏函数?
简单的理解偏函数,它是对原始函数的二次封装,是将现有函数的部分参数预先绑定为指定值,从而得到一个新的函数,该函数就称为偏函数。
所需模块:
functools 模块中的partial()函数。
functools.partial(func[,*args][, **kwargs])
在使用前需要导入:
from functools import partial
正文
一般来说大家需要定义一个相差不大的函数(除参数不同外),通常会采用这种方式:
def x(a, b=1):
print(a + b)
def x2(a, b=2):
print(a + b)
可见他们除了参数不同外,其他都相同。
因此我们可以用另一种方法,使代码更加简便 :
from functools import partial
def x(a, b=1):
print(a + b)
x2 = partial(x, b=2) # x2为新的函数名,调用时需添加括号
作为partial()函数的第一个参数是所要承载的函数名。简单来说就是原函数名。
原函数的各个参数依次作为partial()函数后续的参数(除关键字参数)。
拓展
python函数调用不添加括号时:调用的是这个函数本身 ,是整个函数体,是一个函数对象,不须等该函数执行完成。
带括号时:调用的是函数的执行结果,须等该函数执行完成的结果。