python中偏函数
当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担。
比如,int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换:
>>> int('')
12345
但int()函数还提供额外的base参数,默认值为10表示十进制。如果传入base参数,就可以做 N 进制的转换:
>>> int('', base=8)
5349
>>> int('', 16)
74565
假设要转换大量的二进制字符串,每次都传入int(x, base=2)非常麻烦,于是,我们想到,可以定义一个int2()的函数,默认把base=2传进去:
def int2(x, base=2):
return int(x, base)
这样,我们转换二进制就非常方便了:
>>> int2('')
64
>>> int2('')
85
functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2:
>>> import functools
>>> int2 = functools.partial(int, base=2)
>>> int2('')
64
>>> int2('')
85
所以,functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值,这样,新函数调用的难度就降低了。
python中偏函数的更多相关文章
- python中偏函数的应用
一.什么是偏函数? (1)在Python的functools模块众多的功能中,其中有一个就是偏函数,我们称之为 partial function 模块的概念我们下一篇在细讲. (2)我们都听过偏将军吧 ...
- python 中偏函数 partial 的使用
函数的partial应用 函数在执行时,要带上所有必要的参数进行调用.但是,有时参数可以在函数被调用之前提前获知.这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用. 例 ...
- Python中的偏函数
偏函数是从Python2.5引入的一个概念,通过functools模块被用户调用. 偏函数是将所要承载的函数作为partial()函数的第一个参数,原函数的各个参数依次作为partial()函数后续的 ...
- python基础——偏函数
python基础——偏函数 Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. 在介绍函 ...
- Python之偏函数
学前知识储备: 函数在Python是第一类对象 (Python中一切皆对象). 第一类对象的特性: ----1.可以被引用 ----2.可以当做参数传入 ----3.可以当做函数返回值 ----4.可 ...
- Python 中的闭包和自由变量
1.定义 在函数内部再定义一个函数,并且这个函数用到了外部函数的变量(LEGB),最后返回新建函数的函数名索引,那么将这样的能够访问其定义时所在的作用域的函数以及用到的一些变量称之为闭包.被引用的非全 ...
- [转]Python中的str与unicode处理方法
早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...
- python中的Ellipsis
...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...
- python中的默认参数
https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...
随机推荐
- php 设置地区时间
date_default_timezone_set('Asia/ShangHai');
- PHP : ActiveRecord实现示例
先简单介绍一下Active Record: Active Record(中文名:活动记录)是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录.Acti ...
- (转载)将一段符合XML格式规范字符串插入已有XML文档当中
想我们已经存在一个XML文档,结构如下: < xmlversion="1.0"encoding="utf-8">< employees&g ...
- iOS - url中文和特殊字符转码###
- (NSString *)generateUrl:(NSString *)url{ /** 第一个参数:NULL 第二个参数:C语言的字符串 第三个参数:NULL 第四个参数:要转义的字符串,不要乱 ...
- 1501: 货币系统(money)
1501: 货币系统(money) 时间限制: 1 Sec 内存限制: 64 MB 提交: 33 解决: 12 [提交][状态][讨论版] 题目描述 母牛们不但创建了它们自己的政府,而且选择建立了 ...
- Handler机制原理
andriod提供了Handler 和 Looper 来满足线程间的通信.Handler先进先出原则.Looper类用来管理特定线程内对象之间的消息交换(MessageExchange). 1)Loo ...
- Android开发者必知的5个开源库
摘要:过去的时间里,Android开发逐步走向成熟.而无论出现多少Android相关的开发工具,我们每天使用的大量开源库却始终是不可或缺的.这里,向大家介绍的是,这个任劳任怨的大家庭中,最受开发者喜爱 ...
- WINDOWS 7.1 SDK 安装失败
错误提示: Please refer to Samples\Setup\HTML\ConfigDetails.htm document for further information. 原因:本机上安 ...
- 第七课 nodejs请求响应
1 server.js 接收请求接收请求参数 和接收完成需要对request增加两个监听事件 var http = require('http');var url = require('url');f ...
- Git使fork项目与源项目保持一致方法
Github上经常干的一件事情是看到好的项目,总会fork到自己的项目列表里,但是源项目如果更新了,怎么同步到我们自己的fork项目呢? 操作如下: 先clone自己的fork项目到本地工程目录, g ...