functools模块的partial函数创建函数
使用 partial 构造新函数
通常我们在python中构造函数一般多是使用def function_name( ):d方式创建函数或者是使用 lambda 来创建匿名函数。但是今天我发现了一个新的方法创建函数,当然这个新的方法根lambda一样有着限制,好的,下面详细介绍
partial 的应用场景
假设有这么一个应用场景,我们创建了两个函数分别是函数A和函数B,同时函数B是通过调用A函数来实现函数功能
如下两个简单的函数
def sum_number (num_1,num_2):
sum_1 = num_1 + num_2*num_1
return sum_1
def number_x (values):
return sum_number(3,values)
num = number_x(2)
print(num)
我们就可以使用functools库的partial 来创建一个类似于表达式的函数,如下
from functools import partial
def sum_number (num_1,num_2):
sum_1 = num_1 + num_2*num_1
return sum_1
#使用partial创建函数,第一个必须为函数名
number_y = partial(sum_number,3)
#调用partial创建的函数
num = number_y(2)
print(num)
#上述代码返回结果
8
当然我发现partial有个缺陷,当然也用可能是我没看全,如果你要在使用partial时,在函数后面加值,它只能根据你调用函数创建时()内变量的位置顺序赋值。