有一个被其他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 减少可调用对象的参数个数相关推荐

  1. python 减少可调用对象的参数个数

    有一个被其他python 代码使用的callable 对象,可能是一个回调函数或者是一个处理器,但是它的参数太多了,导致调用时出错 如果需要减少某个函数的参数个数, 你可以使用functools.pa ...

  2. python 函数的调用的时候参数的传递_Python Unittest;如何获取调用函数时传递的参数?...

    我试图做一个单元测试来检查这个python函数(dispatch)是否传递了正确的参数来处理\u结果.在 在dispatch中调用处理"unu result"的函数时,有没有方法& ...

  3. 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 ...

  4. python 函数的调用的时候参数的传递_python定义函数时的参数调用函数时的传参...

    一.定义函数: 1.位置参数:直接定义参数 2.默认参数(或者关键字参数):参数名 = "默认值" 3.位置参数必须在默认参数之前 二.调用函数: 1.按位置传,直接写参数的值 2 ...

  5. [C++11]可调用对象绑定器

    std::bind用来将可调用对象与其参数一起进行绑定.绑定后的结果可以使用std::function进行保存,并延迟调用到任何我们需要的时候.通俗来说,它主要有两个作用: 1.将可调用对象与其参数一 ...

  6. C++11新特性之可调用对象包装器和绑定器

    一.可调用对象 C++中可调用对象有六种. 1.普通函数 普通函数类型可以声明函数,定义函数指针和引用,但是不能定义函数的实体. using Fun = void (int, const string ...

  7. python菜鸟教程h-Python 命令行参数

    Python 命令行参数 Python 提供了 getopt 模块来获取命令行参数. $ python test.py arg1 arg2 arg3 Python 中也可以使用 sys 的 sys.a ...

  8. 可调用对象、std::function、std::bind

    可调用对象.std::function.std::bind 仿函数functors function adapter bind(C++11) 函数适配器:bind2nd 仿函数适配器(mem_fun/ ...

  9. python 参数个数 同名函数_Python——函数的参数

    函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调 ...

最新文章

  1. cnil在python_在Python中使用cumprod()计算权益曲线
  2. 计算机管理的未来职业发展方向,职业发展方向
  3. C++ 数值的整数次方 (最小int取反,递归实现乘方)
  4. springmvc常用5种注解_砂石骨料线常用的5种破碎设备、5种筛分和制砂设备特点比较...
  5. 个盘子的汉诺塔需要移动几步_看漫画学C++039:递归解汉诺塔
  6. HDU - 4497 GCD and LCM
  7. 表单元素聚焦状态回车提交表单问题小记
  8. Z-Stack Home Developer's Guide—5. Compilation Flags中文翻译【Z-Stack Home 1.2.0开发文档】
  9. Git修改提交的用户名和Email
  10. 刚才调试了个mysql中文乱码的问题
  11. 斐讯音箱控制扫地机器人_轻松解决家务难题 斐讯大能扫地机器人X3
  12. SSM框架整合环境搭建
  13. 奥迪车辆识别代码(VIN)码大全
  14. mysql innodb插件_mysql安装innodb插件(MySQL installs the InnoDB plug-in).doc
  15. 关于REVIT复制已连接的线管(Conduit类)问题
  16. Linux学习笔记Day01-02 Xshell下载安装过程
  17. 速看!2022年8月编程语言排行榜出炉!第一名太牛啦
  18. DRV8814PWPR
  19. 基于Pyhton的二维离散正弦变换(DST)及其反变换(IDST)
  20. WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现

热门文章

  1. Linux集群和自动化维1.5.1 服务器物理硬件的优化
  2. linux随机10字母病毒
  3. hdu4280(最大流)
  4. 北京时间3月9日消息,据国外媒体报道
  5. C#interface定义及使用浅析
  6. 【博客话题】感谢您,我的老师
  7. windows 7关闭休眠
  8. from html参数传到另外php文件中_在 PHP 中格式化并高亮 SQL 语句
  9. 【ABAP】根据Tcode查找后台IMG路径
  10. 为你的集成需求选择合适的ESB