Python基本语法(函数partial)
函数partial
典型的,函数在执行时,要带上所有必要的参数进行调用。然而,有时参数可
以在函数被调用之前提前获知。在这种情况下,一个函数有一个或多个参数预先就
能用上,以便函数能用更少的参数进行调用。
在使用partial函数前,首先需要导入functools模块。
import functools
案例2-9 partial函数的使用
import functoolsdef add(a,b):return a+b#1
print('\n#1')
rst1=add(4,2)
print('add(4,2)=',rst1)plus3=functools.partial(add,3)
plus5=functools.partial(add,5)#2
print('\n#2')
rst2=plus3(4)
print('plus3(4)=',rst2)rst3=plus3(7)
print('plus3(7)=',rst3)rst4=plus5(10)
print('plus5(10)=',rst4)
运行结果
#1
add(4,2)= 6#2
plus3(4)= 7
plus3(7)= 10
plus5(10)= 15
一个函数可以有多个参数,在有些情况下有的参数可以先得到,而有的参数需
要在后面的情景中才能知道,Python提供了partial函数用于携带部分参数生成一个
新函数。
plus3=functools.partial(add,3)
把参数先传入函数add()中,生成一个新的函数plus3()。
rst3=p1us3(4)
把最后获得的参数’7’传入函数plus3()中,因为第一个参数’3’已经先行传入,所
以最后的结果是3+4=7。
plus3(7)= 10
同理,把最后获得的参数’7’传入函数plus3()中,最后获得的结果是3+7=10。
通过以上例子可以发现:
partial函数定义了一个匿名函数。
partial并不会带来程序运行效率的提高,只会使代码更简洁。