了解Python偏函数

概念了解

偏函数,是对原始函数的二次封装,把函数的部分参数规定好默认值。在调用偏函数时,可以不指定这部分参数的值。

代码示例

Python的函数参数可以有默认值,例如:

1
2
3
4
5
6
def say_hi(name, message = "hello world"):
print(name, ", 您好")
print("消息是:", message)

say_hi("张三")
say_hi("李四", "byebye")

偏函数的效果类似于这个,但是区别是它新定义了一个函数,我们掉用的是这个新函数。
偏函数的定义用到functools.partialfunctools.partial的作用就是将固定一个函数的默认行为,从而简化之后的使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 导入functools模块中的partial函数
from functools import partial

#定义个原函数
def say_hi(name, message):
print(name, ", 您好")
print("消息是:", message)

#定义偏函数,func_a() 封装了 say_hi() 函数
# 并为 message 参数设置了默认参数
func_a = partial(say_hi, message = "hello world")

#由于 message 参数已经有默认值,因此调用偏函数时,可以不指定
func_a(name = '张三')