Python偏函数

简单的理解偏函数, 它是对原始函数的二次封装, 是将现有函数的部分参数预先绑定为指定值, 从而得到一个新的函数. 该函数就称为偏函数. 相比原始函数, 偏函数具有较少的可变参数, 从而降低了函数调用的难度.

定义偏函数, 需使用partial关键字(位于functools模块中), 其语法格式为:

偏函数名 = partial(func, *args, **keyargs)

func指的是要封装的原函数, *args*keyargs分别用于接收位置实参和关键字实参.

Example:

from functools import partial

# 定义原函数
def display(name, age):
    print(f'name: {name}, age: {age}')

# 定义偏函数, 其封装了display()函数, 并为name参数设置了默认值
GaryFun = partial(display, name = 'Gray')
# 由于name参数已有默认值, 因此调用偏函数时, 可以不指定
GrayFun(age = 18)

偏函数的本质是将函数式编程, 默认参数和冗余参数结合在一起, 通过偏函数传入的参数调用关系, 和正常函数的参数调用关系是一致的.

偏函数通过将任意数量(顺序)的参数, 转换为另一个带有剩余参数的函数对象, 从而实现了截取函数功能(偏向)的效果. 在实际应用中, 可以使用一个原函数, 然后将其封装多个偏函数, 在调用函数时全部调用偏函数, 一定程度上可以提高程序的可读性.

偏函数传入的参数调用关系

偏函数传入的参数调用关系, 与正常函数的调用关系是一致的. 可以这样理解: 将偏函数定义时指定的参数值, 和偏函数调用时传入的参数值, 依次放在一起, 传入原函数.