本文实例讲述了python中偏函数partial用法。分享给大家供大家参考。具体如下:
函数在执行时,要带上所有必要的参数进行调用。但是,有时参数可以在函数被调用之前提前获知。这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用。
例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
In [ 9 ]: from functools import partial In [ 10 ]: def add(a,b): ....: return a + b ....: In [ 11 ]: add( 4 , 3 ) Out[ 11 ]: 7 In [ 12 ]: plus = partial(add, 100 ) In [ 13 ]: plus( 9 ) Out[ 13 ]: 109 In [ 14 ]: plus2 = partial(add, 99 ) In [ 15 ]: plus2( 9 ) Out[ 15 ]: 108 |
其实就是函数调用的时候,有多个参数 参数,但是其中的一个参数已经知道了,我们可以通过这个参数重新绑定一个新的函数,然后去调用这个新函数。
如果有默认参数的话,他们也可以自动对应上,例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
In [ 17 ]: def add2(a,b,c = 2 ): ....: return a + b + c ....: In [ 18 ]: plus3 = partail(add, 101 ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NameError Traceback (most recent call last) / Users / yupeng / Documents / PhantomJS / <ipython - input - 18 - d4b7c6a6855d> in <module>() - - - - > 1 plus3 = partail(add, 101 ) NameError: name 'partail' is not defined In [ 19 ]: plus3 = partial(add, 101 ) In [ 20 ]: plus3( 1 ) Out[ 20 ]: 102 In [ 21 ]: plus3 = partial(add2, 101 ) In [ 22 ]: plus3 = partial(add2, 101 ) ( 1 ) Out[ 22 ]: 104 In [ 23 ]: plus3( 1 ) Out[ 23 ]: 104 In [ 24 ]: plus3( 1 , 2 ) Out[ 24 ]: 104 In [ 25 ]: plus3( 1 , 3 ) Out[ 25 ]: 105 In [ 26 ]: plus3( 1 , 30 ) Out[ 26 ]: 132 |
希望本文所述对大家的Python程序设计有所帮助。