偏函数
一个带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