Python的functools
模块中提供了partial
函数,可以用来创建一个新的可调用对象(函数),将原函数的某些参数固定住,生成一个新的函数。下面是partial
函数的用法和示例。
partial()
函数的基本用法
partial()
函数的基本用法如下:
from functools import partial
def func(a, b, c, d):
print(a, b, c, d)
new_func = partial(func, 1, 2)
new_func(3, 4)
运行上面的代码,可以得到输出结果:
1 2 3 4
partial(func, 1, 2)
创建了一个新的可调用对象new_func
,固定了func
函数的第一个和第二个参数为1和2。调用new_func
时,传入的参数3
和4
将分别对应于func
函数的第三个和第四个参数。
partial()
函数的进阶用法
partial()
函数的进阶用法,包括对默认值的支持和对关键字参数的支持。下面是两个示例:
from functools import partial
def func(a, b, c=3, d=4):
print(a, b, c, d)
new_func1 = partial(func, 1, d=5)
new_func1(2)
new_func2 = partial(func, b=2, d=5)
new_func2(1, c=4)
运行上面的代码,可以得到输出结果:
1 2 3 5
1 2 4 5
new_func1
通过partial(func, 1, d=5)
创建,固定了a
为1,将关键字参数d
设置为5(注:这里不能和位置参数d
混淆)。调用时只需要传入b
的值2。
new_func2
通过partial(func, b=2, d=5)
创建,固定了b
为2,将关键字参数d
设置为5。调用时同时传入位置参数a
和关键字参数c
。在使用时,需要注意位置参数与关键字参数的顺序和数量。
总结
partial()
函数的使用方法较为灵活,可以通过固定参数来创建新函数,还可以为默认参数和关键字参数设置新的值。在实际开发中,partial()
函数常常被用来创建新的函数或者改造旧的函数,提高代码复用性、可读性和可维护性。