博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从源码带你看懂functools的partial方法
阅读量:6112 次
发布时间:2019-06-21

本文共 804 字,大约阅读时间需要 2 分钟。

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

你可能感兴趣的文章
Office WORD如何取消开始工作右侧栏
查看>>
Android Jni调用浅述
查看>>
CodeCombat森林关卡Python代码
查看>>
第一个应用程序HelloWorld
查看>>
(二)Spring Boot 起步入门(翻译自Spring Boot官方教程文档)1.5.9.RELEASE
查看>>
Android Annotation扫盲笔记
查看>>
React 整洁代码最佳实践
查看>>
聊聊架构设计做些什么来谈如何成为架构师
查看>>
Java并发编程73道面试题及答案
查看>>
iOS知识小集·设置userAgent的那件小事
查看>>
移动端架构的几点思考
查看>>
Tomcat与Spring中的事件机制详解
查看>>
Spark综合使用及用户行为案例区域内热门商品统计分析实战-Spark商业应用实战...
查看>>
初学者自学前端须知
查看>>
Retrofit 源码剖析-深入
查看>>
企业级负载平衡简介(转)
查看>>
ICCV2017 论文浏览记录
查看>>
科技巨头的交通争夺战
查看>>
当中兴安卓手机遇上农行音频通用K宝 -- 卡在“正在通讯”,一直加载中
查看>>
Shell基础之-正则表达式
查看>>