您的位置:首页 > 编程语言 > Python开发

python 中偏函数 partial 的使用

2017-04-06 12:43 344 查看
函数的partial应用

  函数在执行时,要带上所有必要的参数进行调用。但是,有时参数可以在函数被调用之前提前获知。这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用。

例如:

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

其实就是函数调用的时候,有多个参数 参数,但是其中的一个参数已经知道了,我们可以通过这个参数重新绑定一个新的函数,然后去调用这个新函数。

如果有默认参数的话,他们也可以自动对应上,例如:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: