点击这里成为作者 · 更新于 2019-07-09 15:52:57

partial 函数

Python 提供了一个 functools 的模块,该模块为高阶函数提供支持,partial 就是其中的一个函数,该函数的形式如下:

functools.partial(func[,*args][, **kwargs])

这里先举个例子,看看它是怎么用的。

假设有如下函数:

def multiply(x, y):return x * y

现在,我们想返回某个数的双倍,即:

>>> multiply(3, y=2)
6
>>> multiply(4, y=2)
8
>>> multiply(5, y=2)
10

上面的调用有点繁琐,每次都要传入 y=2,我们想到可以定义一个新的函数,把 y=2 作为默认值,即:

def double(x, y=2):return multiply(x, y)

现在,我们可以这样调用了:

>>> double(3)
6
>>> double(4)
8
>>> double(5)
10

事实上,我们可以不用自己定义 double,利用 partial,我们可以这样:

from functools import partial

double = partial(multiply, y=2)

partial 接收函数 multiply 作为参数,固定 multiply 的参数 y=2,并返回一个新的函数给 double,这跟我们自己定义 double 函数的效果是一样的。

所以,简单而言,partial 函数的功能就是:把一个函数的某些参数给固定住,返回一个新的函数。

需要注意的是,我们上面是固定了 multiply 的关键字参数 y=2,如果直接使用:

double = partial(multiply, 2)

2 是赋给了 multiply 最左边的参数 x,不信?我们可以验证一下:

from functools import partial

def subtraction(x, y):
return x - y

f = partial(subtraction, 4) # 4 赋给了 x
>>> f(10) # 4 - 10
-6

小结

  • partial 的功能:固定函数参数,返回一个新的函数。
  • 当函数参数太多,需要固定某些参数时,可以使用 functools.partial 创建一个新的函数。

参考资料

partial 函数相关推荐

  1. python partial函数

    Python 提供了一个 functools 的模块,该模块为高阶函数提供支持,partial 就是其中的一个函数,该函数的形式如下: functools.partial(func[,*args][, ...

  2. partial 函数之参数传入

    partial 函数之参数传入 zj@zj-virtual-machine:/tmp$ cat callback.py #!/usr/bin/env python # coding=utf-8 fro ...

  3. partial函数介绍(含代码示例)

    partial函数介绍 partial函数在python的functools模块中,这个函数原型如下: partial(func, *args, **keywords) 这个函数调用时,返回一个par ...

  4. python函数知识点总结_python函数map()和partial()的知识点总结

    map()是python的一个内建函数, 他能够通过函数来处理序列,比如,我们相关一个数组[0,1,2,3,4,5]所有的数字都+2 , 当然,我们可以这么做 old = [0,1,2,3,4,5] ...

  5. python偏函数_Python--偏函数(Partial)

    出处  https://blog.csdn.net/Appleyk/article/details/77609114 一.什么是偏函数? (1)在Python的functools模块众多的功能中,其中 ...

  6. partial()函数

    1. 函数形式 functools.partial(func[,*args][, **kwargs]) 2. 例子 假设有如下函数: def multiply(x, y):return x * y 现 ...

  7. 打造属于自己的underscore系列(五)- 偏函数和函数柯里化

    这一节的内容,主要针对javascript函数式编程的两个重要概念,偏函数(partial application) 和函数柯里化(curry)进行介绍.着重讲解underscore中对于偏函数应用的 ...

  8. python functools.wraps functools.partial实例解析

    一:python functools.wraps 实例 1. 未使用wraps的实例 #!/usr/bin/env python # coding:utf-8def logged(func):def ...

  9. python3 协程asyncio 调用步骤、阻塞和await、task任务、future对象 partial

    首先介绍一下 偏函数 如果需要减少某个函数的参数个数,你可以使用 functools.partial() [作用一]:partial() 函数允许你给一个或多个参数设置固定的值,减少接下来被调用时的参 ...

最新文章

  1. 【转】Android设计中的.9.png
  2. JSON调试找不到 net.sf.ezmorph.Morpher问题解决
  3. wdns服务器未响应,Win7系统​网络诊断提示DNS服务器未响应的解决方法
  4. 【Ubuntu-Tensorflow】InvalidArgumentError GPU不能使用的问题
  5. windows os x_如何立即在OS X上获取Windows样式的窗口捕捉
  6. 大学本科 java教材,大学本科自学java之路——IO
  7. flink CompactingHashTable源码解析
  8. Lotus Domino服务器及其应用系统的高级管理(2)
  9. 《计算机网络》学习笔记 ·003【数据链路层】
  10. Vuex之store仓库计算属性Getter
  11. php在线拍照代码,html5可以实现在线拍照了
  12. 报童问题(3)-深入分析
  13. 孕妇php是什么意思,孕妇适合念什么经
  14. 上海交通大学电子与通信工程819考研上岸经验分享
  15. Yolov5训练自己的数据集+TensorRT加速+Qt部署
  16. 智能家居UI--灯光控制
  17. 如何下载ArcGis Server离线地图瓦片数据
  18. 【C语言入门】--- 数组详解
  19. Word生成图表(柱状图、线形图等,并附带表格展示数值)
  20. 汉寿计算机培训初中升高中,升高中前,这几类学生只需注意这些,就有机会成为学霸...

热门文章

  1. WebService之通讯协议:SOAP
  2. pyecharts中折线图Line参数大全(内附优秀范例和官方文档)
  3. 10天手敲一个SpringBoot网上商城项目(四)——新增收货地址功能、获取省市区列表及名称功能的实现
  4. mipi接口的摄像头驱动并发布话题
  5. 做外贸必知——你还不知道外贸拼箱技巧吗
  6. 生产件批准流程(PPAP)--PPAP流程
  7. DWR(1):DWR服务端推送技术介绍
  8. mybatis懒加载与缓存
  9. 原生态Ajax价绍与使用方法
  10. 吃透OLED显示原理——玩转OLED模块各种使用方法