partial 函数
点击这里成为作者 · 更新于 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 函数相关推荐
- python partial函数
Python 提供了一个 functools 的模块,该模块为高阶函数提供支持,partial 就是其中的一个函数,该函数的形式如下: functools.partial(func[,*args][, ...
- partial 函数之参数传入
partial 函数之参数传入 zj@zj-virtual-machine:/tmp$ cat callback.py #!/usr/bin/env python # coding=utf-8 fro ...
- partial函数介绍(含代码示例)
partial函数介绍 partial函数在python的functools模块中,这个函数原型如下: partial(func, *args, **keywords) 这个函数调用时,返回一个par ...
- python函数知识点总结_python函数map()和partial()的知识点总结
map()是python的一个内建函数, 他能够通过函数来处理序列,比如,我们相关一个数组[0,1,2,3,4,5]所有的数字都+2 , 当然,我们可以这么做 old = [0,1,2,3,4,5] ...
- python偏函数_Python--偏函数(Partial)
出处 https://blog.csdn.net/Appleyk/article/details/77609114 一.什么是偏函数? (1)在Python的functools模块众多的功能中,其中 ...
- partial()函数
1. 函数形式 functools.partial(func[,*args][, **kwargs]) 2. 例子 假设有如下函数: def multiply(x, y):return x * y 现 ...
- 打造属于自己的underscore系列(五)- 偏函数和函数柯里化
这一节的内容,主要针对javascript函数式编程的两个重要概念,偏函数(partial application) 和函数柯里化(curry)进行介绍.着重讲解underscore中对于偏函数应用的 ...
- python functools.wraps functools.partial实例解析
一:python functools.wraps 实例 1. 未使用wraps的实例 #!/usr/bin/env python # coding:utf-8def logged(func):def ...
- python3 协程asyncio 调用步骤、阻塞和await、task任务、future对象 partial
首先介绍一下 偏函数 如果需要减少某个函数的参数个数,你可以使用 functools.partial() [作用一]:partial() 函数允许你给一个或多个参数设置固定的值,减少接下来被调用时的参 ...
最新文章
- 【转】Android设计中的.9.png
- JSON调试找不到 net.sf.ezmorph.Morpher问题解决
- wdns服务器未响应,Win7系统​网络诊断提示DNS服务器未响应的解决方法
- 【Ubuntu-Tensorflow】InvalidArgumentError GPU不能使用的问题
- windows os x_如何立即在OS X上获取Windows样式的窗口捕捉
- 大学本科 java教材,大学本科自学java之路——IO
- flink CompactingHashTable源码解析
- Lotus Domino服务器及其应用系统的高级管理(2)
- 《计算机网络》学习笔记 ·003【数据链路层】
- Vuex之store仓库计算属性Getter
- php在线拍照代码,html5可以实现在线拍照了
- 报童问题(3)-深入分析
- 孕妇php是什么意思,孕妇适合念什么经
- 上海交通大学电子与通信工程819考研上岸经验分享
- Yolov5训练自己的数据集+TensorRT加速+Qt部署
- 智能家居UI--灯光控制
- 如何下载ArcGis Server离线地图瓦片数据
- 【C语言入门】--- 数组详解
- Word生成图表(柱状图、线形图等,并附带表格展示数值)
- 汉寿计算机培训初中升高中,升高中前,这几类学生只需注意这些,就有机会成为学霸...