当前位置: 首页 > news >正文

Python函数参数的封包与拆包

当自定义函数有大量参数或者参数数量不定时,可以使用参数封包;当调用的函数有大量参数或者参数数量不定时,可以使用参数拆包。

1 函数参数的封包

在《Python自定义函数的位置参数和关键字参数》中提到,python函数的参数主要分为位置参数和关键字参数。针对这两种不同类型的参数,封包的方式不同。

1.1 位置参数的封包

在函数定义中,* 会把调用时传入的所有未匹配的位置参数封装打包成一个元组。代码如图1所示。

图1 使用*封包参数的代码

其中,第1-4行代码定义了函数f(),该函数的第三个参数*args表示将第3个参数到最后一个参数,封装打包到元组args中。第6行代码调用自定义函数f()。代码运行的效果如图2所示。

图2 代码运行效果

1.2 关键字参数的封包

** 会把调用时传入的所有未匹配的关键字参数打包成一个字典。代码如图3所示。

图3 使用**封包参数的代码

其中,第1-4行代码定义了函数f(),该函数的第三个参数**kwargs表示将第3个参数到最后一个参数,封装打包到字典kwargs中。第6行代码调用自定义函数f()。代码运行的效果如图4所示。

图4 代码运行效果

注意1 在定义包含打包参数的函数时,打包参数必须位于在参数列表中的最后。

2 函数参数的拆包

2.1 位置参数的拆包

在函数调用时,* 可以把一个列表、元组等可迭代对象拆解成独立的位置参数。代码如图5所示。

图5 使用*拆包列表/元组的代码

其中,第1-2行代码自定义的函数f(),有三个独立的参数。第6行调用该参数时,将数组nums前面加上*,实现参数的拆包。代码运行效果如图6所示。

图6 代码运行效果

注意2 拆包列表或元组时,其元素个数,必须与函数参数的个数相等。

2.2 关键字参数的拆包

** 可以把一个字典拆解成关键字参数。代码如图7所示。

图7 使用**拆包字典的代码

代码运行效果与图6相同。

注意3 拆包字典时,其元素个数必须与参数的个数相同,并且字典每个元素的键值要和参数名对应相同。

注意4 *args 和 **kwargs 只是约定俗成的名称,星号后面的变量名可以任意(如 *items, **options),但推荐使用 args 和 kwargs。

http://www.cnnetsun.cn/news/2117203.html

相关文章:

  • 揭秘RyzenAdj:解锁AMD移动处理器性能与功耗平衡的三大突破
  • 亿量级裁判文书数据库1985-2021年
  • 【建议收藏】2026年大模型终极风口:AI Agent爆发,程序员/小白入门必看(吃透少走3年弯路)
  • ngx_close_listening_sockets
  • 终极指南:如何在Windows电脑上使用Ryujinx模拟器畅玩Switch游戏
  • Python AI模型推理慢?不是模型问题,是这6类Python运行时开销在 silently kill 你的吞吐——附火焰图诊断模板
  • just-bash:将Bash脚本编译为JavaScript的跨平台自动化解决方案
  • 从CTP到自研L2行情解析引擎:我们用237天重写Python金融协议栈,最终实现<15μs端到端解析延迟(仅限内部技术白皮书节选)
  • 极片涂布产线三菱PLC双通道通讯设计:以太网模块实现HMI+上位机同步交互
  • 保姆级教程:用ESP32和MicroPython驱动1.8寸ST7735S彩屏,5分钟显示你的第一张图片
  • 2026年主流英文会议纪要AI工具实测对比,半路杀出黑马,头部产品差距竟然这么大
  • 如何让30fps视频秒变60fps?Flowframes AI视频插帧完全指南
  • 【AI大模型】国内外主流大语言模型(LLM)全面对比解析
  • VBVR视频推理数据集构建与多模态标注技术解析
  • 5分钟掌握DOL-Lyra:Degrees of Lewdity汉化美化一站式解决方案
  • 专知智库发布《地理标志资产成熟度认证白皮书》:三维生态模型为区域特色经济打造“价值标尺”
  • 算法#四数之和
  • 《凌晨三点还在改AI率?好写作AI来当你的学术“消防员”》
  • 免费在电脑玩Switch游戏:Ryujinx模拟器5分钟快速入门终极指南
  • 别再死记硬背了!用Python手把手教你实现DAG拓扑排序(附LeetCode真题)
  • 如何在macOS上实现MKV等所有视频格式的快速预览:终极解决方案指南
  • 5分钟上手Ryujinx:在PC上完美运行Switch游戏的终极指南 [特殊字符]
  • 网络安全中的CC攻击是什么?CC攻击怎么防御?黑客技术零基础入门到精通,收藏这一篇就够了!
  • 基于规则引擎与加权随机的智能周菜单生成系统设计与实现
  • 如何高效管理XCOM 2模组:专业级配置解决方案终极指南
  • PDF文件体积优化深度解析:开源工具pdfsizeopt的架构设计与性能调优策略
  • 音乐标签编码终极解决方案:告别繁简乱码,构建统一音乐库
  • Windows Cleaner磁盘清理工具:3分钟解决C盘爆红难题
  • TED演讲数据集:从数据清洗到NLP分析与知识图谱构建
  • 解决Py-Scrcpy-Client安装过程中Cython编译错误的3种方法