Python 使用partial()函数

  • Post category:Python

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时,传入的参数34将分别对应于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()函数常常被用来创建新的函数或者改造旧的函数,提高代码复用性、可读性和可维护性。