python 减少可调用对象的参数个数
有一个被其他python 代码使用的callable 对象,可能是一个回调函数或者是一个处理器,但是它的参数太多了,导致调用时出错
如果需要减少某个函数的参数个数, 你可以使用functools.partial() 。partial() 函数允许你给一个或多个参数设置固定的值,减少接下来被调用时的参数个数。为了演示清楚,假设你有下面这样的函数:
def spam(a, b, c, d):
print(a, b, c, d)
现在我们使用partial() 函数来固定某些参数值:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> from functools import partial
>>> s1 = partial(spam, 1) # a = 1
>>> s1(2, 3, 4)
1 2 3 4
>>> s1(4, 5, 6)
1 4 5 6
>>> s2 = partial(spam, d=42) # d = 42
>>> s2(1, 2, 3)
1 2 3 42
>>> s2(4, 5, 5)
4 5 5 42
>>> s3 = partial(spam, 1, 2, d=42) # a = 1, b = 2, d = 42
>>> s3(3)
1 2 3 42
>>> s3(4)
1 2 4 42
>>> s3(5)
1 2 5 42
>>>
可以看出partial() 固定某些参数并返回一个新的callable 对象。这个新的callable接受未赋值的参数,然后跟之前已经赋值过的参数合并起来,最后将所有参数传递给原始函数。
python 减少可调用对象的参数个数相关推荐
- python 减少可调用对象的参数个数
有一个被其他python 代码使用的callable 对象,可能是一个回调函数或者是一个处理器,但是它的参数太多了,导致调用时出错 如果需要减少某个函数的参数个数, 你可以使用functools.pa ...
- python 函数的调用的时候参数的传递_Python Unittest;如何获取调用函数时传递的参数?...
我试图做一个单元测试来检查这个python函数(dispatch)是否传递了正确的参数来处理\u结果.在 在dispatch中调用处理"unu result"的函数时,有没有方法& ...
- python创建对象后调用对象的方法,报错TypeError: getName() takes 0 positional arguments but 1 was given
源码 ## TODO: Create multiple cars and visualize them height = 4 width = 6 world = np.zeros((height, w ...
- python 函数的调用的时候参数的传递_python定义函数时的参数调用函数时的传参...
一.定义函数: 1.位置参数:直接定义参数 2.默认参数(或者关键字参数):参数名 = "默认值" 3.位置参数必须在默认参数之前 二.调用函数: 1.按位置传,直接写参数的值 2 ...
- [C++11]可调用对象绑定器
std::bind用来将可调用对象与其参数一起进行绑定.绑定后的结果可以使用std::function进行保存,并延迟调用到任何我们需要的时候.通俗来说,它主要有两个作用: 1.将可调用对象与其参数一 ...
- C++11新特性之可调用对象包装器和绑定器
一.可调用对象 C++中可调用对象有六种. 1.普通函数 普通函数类型可以声明函数,定义函数指针和引用,但是不能定义函数的实体. using Fun = void (int, const string ...
- python菜鸟教程h-Python 命令行参数
Python 命令行参数 Python 提供了 getopt 模块来获取命令行参数. $ python test.py arg1 arg2 arg3 Python 中也可以使用 sys 的 sys.a ...
- 可调用对象、std::function、std::bind
可调用对象.std::function.std::bind 仿函数functors function adapter bind(C++11) 函数适配器:bind2nd 仿函数适配器(mem_fun/ ...
- python 参数个数 同名函数_Python——函数的参数
函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调 ...
最新文章
- cnil在python_在Python中使用cumprod()计算权益曲线
- 计算机管理的未来职业发展方向,职业发展方向
- C++ 数值的整数次方 (最小int取反,递归实现乘方)
- springmvc常用5种注解_砂石骨料线常用的5种破碎设备、5种筛分和制砂设备特点比较...
- 个盘子的汉诺塔需要移动几步_看漫画学C++039:递归解汉诺塔
- HDU - 4497 GCD and LCM
- 表单元素聚焦状态回车提交表单问题小记
- Z-Stack Home Developer's Guide—5. Compilation Flags中文翻译【Z-Stack Home 1.2.0开发文档】
- Git修改提交的用户名和Email
- 刚才调试了个mysql中文乱码的问题
- 斐讯音箱控制扫地机器人_轻松解决家务难题 斐讯大能扫地机器人X3
- SSM框架整合环境搭建
- 奥迪车辆识别代码(VIN)码大全
- mysql innodb插件_mysql安装innodb插件(MySQL installs the InnoDB plug-in).doc
- 关于REVIT复制已连接的线管(Conduit类)问题
- Linux学习笔记Day01-02 Xshell下载安装过程
- 速看!2022年8月编程语言排行榜出炉!第一名太牛啦
- DRV8814PWPR
- 基于Pyhton的二维离散正弦变换(DST)及其反变换(IDST)
- WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现