python函数编程-偏函数partial function
一般的,通过设定函数参数的默认值,可以减低函数调用的难度。比如:int()函数可以把字符串转换成整数:
>>> int('123') 123
事实上,int()函数还提供额外的base参数,表示进制,只是默认值是10而已:
>>> int('123',base=16) 291 >>> int('123',16) 291
现在,如果我们需要转换大量的二进制字符串,每次都调用int(x,base=2)显得比较麻烦。这时我们可以尝试封装函数int(x,base=2)成为int2(x),而int2(x)相当于:
>>> def int2(x,base=2): ... return int(x,base) ... >>> int2('1000111') 71
在python的functools模块中就内置了partial函数,用于把函数的某些参数固定住(也就是设置默认值),最后返回一个新函数。这就是偏函数(和数学中的偏函数的意义不同)。上述例子可以使用偏函数改写为:
>>> import functools >>> int2 = functools.partial(int,base=2) >>> int2('110011') 51
其实,上面新的int2函数,仅仅是把base参数的默认值由原来的10变为2。我们还是可以在函数调用的时候传入其他的值:
>>> int2('110011',base = 10) 110011
创建偏函数的时候,可以接收3种类型的参数:函数、*args、**kw:
当写成:
int2 = functools.partial(int,base=2)
int2('110011')
执行的结果相当于:
kw = { 'base': 2 } int('10010', **kw)
当写成:
>>> max2 = functools.partial(max,5) >>> max2(3,6) 6
相当于:
args = (10, 5, 6, 7) max(*args)
可见,如果一个函数的参数个数太多,需要简化的时候,使用functools.partial函数,可以创建一个函数,这个新函数可以将原函数的部分参数初始化(即赋默认值),调用的时候更简单
转载于:https://www.cnblogs.com/hiwuchong/p/8138386.html
python函数编程-偏函数partial function相关推荐
- JavaScript函数式编程之偏函数(Partial Function)
之前的博客有介绍JavaScript函数式编程的curry化,今天就介绍一个跟curry化有点像的偏函数(partial function) 先介绍一下什么叫偏函数,其实指的是将给定的函数的部分参数固 ...
- Scala之偏函数Partial Function
文章目录 从使用case语句构造匿名函数谈起 使用case语句构造匿名函数的"额外"好处 正式认识偏函数Partial Function Case语句是如何被编译成偏函数的 为什么 ...
- python学习 -偏函数
一.什么是偏函数? (1)在Python的functools模块众多的功能中,其中有一个就是偏函数,我们称之为 partial function 模块的概念我们下一篇在细讲. (2)我们都听过偏将军吧 ...
- python中偏函数的应用
一.什么是偏函数? (1)在Python的functools模块众多的功能中,其中有一个就是偏函数,我们称之为 partial function 模块的概念我们下一篇在细讲. (2)我们都听过偏将军吧 ...
- 【Python函数式编程】——偏函数(Partial function)
Python函数式编程--偏函数 Python的 functools 模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一 ...
- 偏函数(Partial Function)
Scala中的Partial Function就是一个"残缺"的函数,就像一个严重偏科的学生,只对某些科目感兴趣,而对没有兴趣的内容弃若蔽履.Partial Function做不到 ...
- Python中的partial便函数的理解
偏函数(Partial function)是通过将一个函数的部分参数预先绑定为某些值,从而得到一个新的具有较少可变参数的函数.在Python中,可以通过functools中的partial高阶函数来实 ...
- python的偏函数
Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. 在介绍函数参数的时候,我们讲到,通过 ...
- Python 中的闭包、匿名函数、decorator 装饰器与python的偏函数
Python中的闭包 def calc_sum(lst):def lazy_sum():return sum(lst)return lazy_sum 像这种内层函数引用了外层函数的变量(参数也算变量) ...
最新文章
- 梯度下降法 —— 经典的优化方法
- Python递归实现快速排序
- 嵌入式开发之davinci--- 8168 电源调试总结
- php读取数组修改内容,php 数组如何修改值
- js 获取最后一个字符
- 基于ubuntu18.04使用 Azure Kinect 传感器 SDK 录制
- R语言实现混频数据分析
- SQL将A表的现有数据添加到B表,通过A表现有数据更新B表
- 如何在mysql navicat 设置datetime类型的默认事件值
- 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例32
- redis 菜鸟教程中脚本笔记
- Python 地图行政区边界方案
- 一起来做个CH347的项目(应用于FPGA、CPLD、MCU)
- 【数据挖掘】K-Means 一维数据聚类分析示例
- forward(转发)与redirect(重定向)的区别
- IOS7使用吐槽(抛弃拟物化您还能走多远.........)
- 当Excel遇到在线表格,看如何轻松解决办公难题 ?
- Android APK 反编译浅入浅出:apktool 、dex2jar 、jd-gui
- android app内部打开word pdf .doc类型文件的两种方式
- 如何高效阅读英文文献,这些技巧你学会了吗?
热门文章
- ionic ajax 跨域,解决 ionic 中的 CORS(跨域) 问题
- html 弹出遮罩 iframe,iframe正在加载时显示遮罩层 加载完毕后显示iframe
- Windows CE 6.0 安装顺序
- System.Diagnostics.Process启动Civil 3D及AutoCAD
- 理解大型分布式网站你应该知道这些概念
- break、continue和return的使用
- 自动化发布-GitLab WEB Hooks 配置
- Configuring the Java Virtual Manager (JVM)
- 昆仑网(D×××)去中心化虚拟互联网基础功能图片式介绍,请全屏看。
- 明星软件工程师的十种特质