functools.partial
Partial函数允许我们预定一个函数的部分参数,然后生成一个新的函数。
partial要求传入一个可调用对象callable
(通常是一个函数)和一些参数,这些参数将被固定填充到新的partial函数中。类似C++的bind。
在下面的示例中,我们创建的普通函数需要4个变量,而我们可以构建partial,固定填充一些变量,然后生成一个需要更少变量的新函数:
from functools import partial
# 普通函数
from functools import partial
# 普通函数
def f(a, b, c, x):
return 1000 * a + 100 * b + 10 * c + x
# partial函数
only_need_x = partial(f, 3, 1, 5)
need_c_and_x = partial(f, 3, 1)
print(only_need_x(4))
print(need_c_and_x(2, 4))
print(type(only_need_x))
也可以通过关键字来填充:
def f(a, b, c, x):
return 1000 * a + 100 * b + 10 * c + x
nf = partial(f, b=1, c=5)