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方法相关推荐

  1. 三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别

    本文转载自[http://blog.csdn.net/u012702547/article/details/52628453] 关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关 ...

  2. C/C++ 如何快速解构一个系统的源码(如何看懂大型工程项目的源码)

    问: 研究一个开源系统源码的时候,总是不知道该从哪里研究. 我现在看源码从index文件开始看起,遇到包含的文件,就去看包含的文件, 包含的文件中又引用了其它的文件,总是觉得看来看去,很没有逻辑性. ...

  3. 25000linux集群源码,一文看懂 Redis5 搭建集群

    1.简要说明 2018年十月 Redis 发布了稳定版本的 5.0 版本,推出了各种新特性,其中一点是放弃 Ruby的集群方式,改为 使用 C语言编写的 redis-cli的方式,是集群的构建方式复杂 ...

  4. 带你看懂LayoutInflater中inflate方法

    关于inflate问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个东东 ...

  5. 一篇文章带你看懂以及实现加解密技术中的信息防篡改、一码一检、过期失效、多种实现方式

    一篇文章带你看懂以及实现加解密技术中的信息防篡改.一码一检.过期失效.多实现方式 导语 一.简介 二.代码功能介绍以及源码 2.1.AbstractRsa 类 2.2 RsaUtils 类 2.3 R ...

  6. java byte char io流_一文带你看懂JAVA IO流,史上最全面的IO教学

    原标题:一文带你看懂JAVA IO流,史上最全面的IO教学 一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符 ...

  7. java io流详解_一文带你看懂JAVA IO流,史上最全面的IO教学啦

    一.IO流是什么 惯例引用百科的回答流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作 ...

  8. javaio流_一文带你看懂JAVA IO流,史上最全面的IO教学啦

    一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...

  9. 一文带你看懂JAVA IO流,史上最全面的IO教学啦(附送JAVA IO脑图

    一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操 ...

最新文章

  1. ScrollView 嵌套EditText 滑动冲突解决
  2. 设置 webstorm 对 .vue 高亮
  3. Elasticsearch filter和query的不同
  4. 工具的使用 —— sublime
  5. Windows安装虚拟机VMware
  6. c语言音乐播放器的代码大全,C语言音乐播放器实例代码
  7. Low-Light Image and Video Enhancement Using Deep Learning: A Survey 论文阅读笔记
  8. Laravel中使用dingo
  9. CMMI 认证为什么要提前准备?评估方式是怎样的?
  10. 修改植物大战僵尸游戏存档相关知识
  11. 网络数据采集分析工具tcpdump定义抓包过滤器
  12. 【笔记:Spring】
  13. 华南x79主板u盘装系统教程_[Hackintosh] X79黑苹果
  14. 分享一种 ConstraintLayout 让TextView 自适应的同时,还不超出限制范围的方式
  15. 【机器学习入门基础】Matrix
  16. 调用android手机分享
  17. 微信小程序_4,WXSS模板样式
  18. ScriptManager的简单用法-ASP.Net 中ASP:ScriptManager控件的使用
  19. 23篇大数据系列(一)java基础知识全集(2万字干货,建议收藏)
  20. 总说未雨绸缪,一觉醒来窗外已是漫天飞雪

热门文章

  1. 证照编号与所选择的主体类型不一致_你的孩子天天在用“化妆品”,如何不踩雷?...
  2. quota在oracle,Oracle的表空间quota详解
  3. format函数python的顺序_[转载] Python中format函数用法
  4. 神了!React VR使得Oculus Home在Gear VR上运行更快更省电
  5. “诺奖风向标”沃尔夫奖出炉:数学颁给表示论,物理颁给激光
  6. 女性走夜路不安全?英国奇葩新招:无人机护航,关键时刻用光吓退张三
  7. 北理工副教授曝学生论文被100%抄袭,对方为南方某985学生,该校抄袭事件还不止一起...
  8. 「Smile」一下,轻松用Java玩转机器学习
  9. IDC中国AI服务器报告出炉:浪潮继续蝉联第一,份额超过其他玩家总和
  10. 无人出租今起免费坐,只恨不是长沙人