Python偏函数

偏函数

一个带n 个参数,curried 的函数固化第一个参数为固定参数,并返回另一个带n-1 个参数函数对象

>>> from functools import partial
>>> convert=partial(int,base=2)
>>> convert('11111111')
255
#利用已知的函数,固定其中一部分参数,实现新函数

给大家说说Python参数的规定

Python的参数必须按下面的四个顺序排列

1)必须的参数
2)可选的参数
3)过量的位置参数
4)过量的关键字参数

可以参考

http://blog.sina.com.cn/s/blog_4bfd07180100g34k.html

>>> def haha(x,y,z):
    m=x+y+z
    print m

    
>>> hahap=partial(haha,x=2,y=4)
>>> hahap(5)

Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    hahap(5)
TypeError: haha() got multiple values for keyword argument 'x'
#这是说你给x给了多个值,为什么呢,本来你定义 hahap=partial(haha,x=2,y=4)
#给x赋了值但是,你调用时采用必须的参数,你希望给z赋值但实际是给x赋值,但偏函数是固定x的值,所以就矛盾了
>>> hahap=partial(haha,2,4)
>>> hahap(5)
11

 

posted @ 2016-02-18 16:03  dreamfor  阅读(285)  评论(0编辑  收藏  举报