Python学习札记(二十七) 函数式编程8 偏函数
2017-02-20 22:19
323 查看
偏函数
NOTE
1.int()函数提供额外的base参数,默认值为10。如果传入base参数,就可以做N进制的转换:#!/usr/bin/env python3 import functools def main(): print(int(input(), base=2)) print(int(input(), base=16)) if __name__ == '__main__': main()
sh-3.2# ./partial1.py 10 2 20 32
可以看到,后面的base指明了输入的进制,并将其转换为10进制。
如果要转换大量的二进制数,就很麻烦,一般使用函数封装起来,调用就可以了:
def int2(a, b): return int(a, b)
10 2
2.functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
eg.固定二进制:
int_2 = functools.partial(int, base=2) # int函数, 固定参数base=2 print(int_2('10001')) print(int_2('100'))
sh-3.2# ./partial1.py 17 4
传入两个参数,一个参数指向函数,另外一个参数(本质上是一个字典)指明固定的形参;函数结束之后返回固定特定形参的新函数。
相当于
kw = { 'base': 2 } int(input(), **kw)
如果是max这样的函数的话,加入一个参数相当于:
max_2 = functools.partial(max, 10) print(max_2(5, 6, 7))
10
所以,当函数的参数个数太多,需要简化时,使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。
2017/2/20
相关文章推荐
- Python学习札记(二十三) 函数式编程4 sorted
- Python学习札记(二十二) 函数式编程3 filter & SyntaxError: unexpected EOF while parsing
- Python学习笔记——函数式编程
- python学习——函数式编程——返回函数篇
- 廖雪峰Python教程学习笔记4-函数式编程
- python学习之路 五:函数式编程
- 【Python学习笔记】函数式编程:高阶函数map和reduce
- 【Python学习笔记】函数式编程:高阶函数filter
- 【Python学习笔记】函数式编程:偏函数
- Python学习笔记(五)——函数式编程
- Python学习笔记——函数式编程
- Python学习基础(9):函数式编程
- Python学习9:函数式编程
- 慕课网python进阶函数式编程学习记录
- 【Python学习笔记】函数式编程:高阶函数
- Python学习笔记——函数式编程
- 慕课网学习Python进阶教程,包括(函数式编程、模块、面向对象编程、类的继承、定制类)
- 【python学习】之二、函数式编程
- 【学习笔记】用python的非闭包、闭包(函数式编程)、面向对象方法解决旅行者问题
- 【Python学习日记】函数式编程 之 高阶函数