前言:python的设计核心原则就是简洁——在这种原则的指导下,诞生了lambda表达式和偏函数:二者都让函数调用变得简洁。
1.为什么要使用偏函数
如果我们定义了一个函数,比如说将3个数相加add(one ,two,three),上层有很多函数需要调用这个函数。在这些调用中,80%的调用传递的参数都是one=1,two=20,如果我们每都输入相同的参数,这样乏味而且浪费,固然,我们可以通过默认参数来解决这个问题;但是如果另外我们也需要参数是one=2,two=10的情况呢?所以,我们需要一种函数,能够将任意数量的参数的函数转化成带剩余参数的函数对象。
2.什么是偏函数
偏函数(Partial function)functools.partial的作用就是,把一个函数的某些参数(不管有没有默认值)给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
可以理解成绑定了一部分参数的函数。
作用就是少传参数,更短,更简洁。
所以,我们需要:1)给偏函数命名 2)传递固定参数
创建偏函数时,要从右到左固定参数,就是说,对于函数f(a1, a2,a3),可以固定a3,也可以固定a3和a2,也可以固定a3,a2和a1,但不要跳着固定,比如只固定a1和a3,把a2漏下了。
>>> from operator import add,mul
>>> from functools import partial
>>> add1=partial(add,1)
>>> add(2,4)
6
>>> add1(2)
3
3.如何使用偏函数
稍后再补充
相关资料链接:
http://blog.youkuaiyun.com/trochiluses/article/details/22149705
http://blog.youkuaiyun.com/u010141025/article/details/41895625
http://blog.youkuaiyun.com/handsomekang/article/details/9712125