从源码带你看懂functools的partial方法
1.what?
partial是什么, partial也叫偏函数。源码的描述是: 部分应用给定参数和关键字的新函数。
New function with partial application of the given arguments and keywords.
2.how?
怎么去用它呢?官方文档给出的例子如下:
>>>from functools import partial >>>basetwo = partial(int, base=2)>>>basetwo.__doc__ 'Convert base 2 string to an int.'>>>basetwo('10010')18
以上的例子可能你有点茫然看不懂, 那我给你解释一下
1. 首先明白int能干嘛, int可以将一个数转换为十进制的数, 这里int需要两个参数:一个是我们需要转换的数, 第二个是指定需要转换的数是多少进制的
2. 然后我们用partical传入了int和base=2, 这是什么意思呢, 就是说我已经给你int指定了我要传的数是一个二进制的数
3. 最后这由生成的函数附给了basetwo, 后面我们就只需要传一个数给basetwo就可以实现int的功能了
总结: 预先给某个函数传部分参数, 在后续的使用中只需要传剩下的参数
3.源码解析
首先我们的partial( )调用了partial的__call__方法, 所以我们直接去看__call__就好了
很简单的几行代码, 相信大家都能看懂, 我们忽略前三行, 只需要看第四行和最后一行就能理解, 将自己和给出的参数赋值给args形成新的参数, 最后返回一个函数并把新的参数传入,形成新的方法。
转载于:https://www.cnblogs.com/liusijun113/p/11019243.html
从源码带你看懂functools的partial方法相关推荐
- 三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别
本文转载自[http://blog.csdn.net/u012702547/article/details/52628453] 关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关 ...
- C/C++ 如何快速解构一个系统的源码(如何看懂大型工程项目的源码)
问: 研究一个开源系统源码的时候,总是不知道该从哪里研究. 我现在看源码从index文件开始看起,遇到包含的文件,就去看包含的文件, 包含的文件中又引用了其它的文件,总是觉得看来看去,很没有逻辑性. ...
- 25000linux集群源码,一文看懂 Redis5 搭建集群
1.简要说明 2018年十月 Redis 发布了稳定版本的 5.0 版本,推出了各种新特性,其中一点是放弃 Ruby的集群方式,改为 使用 C语言编写的 redis-cli的方式,是集群的构建方式复杂 ...
- 带你看懂LayoutInflater中inflate方法
关于inflate问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个东东 ...
- 一篇文章带你看懂以及实现加解密技术中的信息防篡改、一码一检、过期失效、多种实现方式
一篇文章带你看懂以及实现加解密技术中的信息防篡改.一码一检.过期失效.多实现方式 导语 一.简介 二.代码功能介绍以及源码 2.1.AbstractRsa 类 2.2 RsaUtils 类 2.3 R ...
- java byte char io流_一文带你看懂JAVA IO流,史上最全面的IO教学
原标题:一文带你看懂JAVA IO流,史上最全面的IO教学 一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符 ...
- java io流详解_一文带你看懂JAVA IO流,史上最全面的IO教学啦
一.IO流是什么 惯例引用百科的回答流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作 ...
- javaio流_一文带你看懂JAVA IO流,史上最全面的IO教学啦
一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...
- 一文带你看懂JAVA IO流,史上最全面的IO教学啦(附送JAVA IO脑图
一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...
最新文章
- ScrollView 嵌套EditText 滑动冲突解决
- 设置 webstorm 对 .vue 高亮
- Elasticsearch filter和query的不同
- 工具的使用 —— sublime
- Windows安装虚拟机VMware
- c语言音乐播放器的代码大全,C语言音乐播放器实例代码
- Low-Light Image and Video Enhancement Using Deep Learning: A Survey 论文阅读笔记
- Laravel中使用dingo
- CMMI 认证为什么要提前准备?评估方式是怎样的?
- 修改植物大战僵尸游戏存档相关知识
- 网络数据采集分析工具tcpdump定义抓包过滤器
- 【笔记:Spring】
- 华南x79主板u盘装系统教程_[Hackintosh] X79黑苹果
- 分享一种 ConstraintLayout 让TextView 自适应的同时,还不超出限制范围的方式
- 【机器学习入门基础】Matrix
- 调用android手机分享
- 微信小程序_4,WXSS模板样式
- ScriptManager的简单用法-ASP.Net 中ASP:ScriptManager控件的使用
- 23篇大数据系列(一)java基础知识全集(2万字干货,建议收藏)
- 总说未雨绸缪,一觉醒来窗外已是漫天飞雪
热门文章
- 证照编号与所选择的主体类型不一致_你的孩子天天在用“化妆品”,如何不踩雷?...
- quota在oracle,Oracle的表空间quota详解
- format函数python的顺序_[转载] Python中format函数用法
- 神了!React VR使得Oculus Home在Gear VR上运行更快更省电
- “诺奖风向标”沃尔夫奖出炉:数学颁给表示论,物理颁给激光
- 女性走夜路不安全?英国奇葩新招:无人机护航,关键时刻用光吓退张三
- 北理工副教授曝学生论文被100%抄袭,对方为南方某985学生,该校抄袭事件还不止一起...
- 「Smile」一下,轻松用Java玩转机器学习
- IDC中国AI服务器报告出炉:浪潮继续蝉联第一,份额超过其他玩家总和
- 无人出租今起免费坐,只恨不是长沙人