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

python6.7-函数的不定长参数

不定长参数

介绍:不定长参数也可叫可变参数,用于 函数定义及调用 参数个数不确定(0个或多个)的场景。

类型:

  • 位置传递
  • 关键字传递

不定长参数——位置传参(*args)

注意:传递的所有匹配的位置参数都会被args变量收集,这些参数会合并封装为一个元组args是元组类型(注意并不会封装关键字参数)。

注意:args只是约定俗成的变量名,并不是关键字,这里可以使用任何合法的变量名(如:*data)

def sum_numbers(*args): total = 0 for num in args: total += num print(f"参数: {args}, 总和: {total}") return total sum_numbers(1, 2, 3) sum_numbers(1, 2, 3, 4, 5)

不定长参数——关键字传参(**kwargs)

def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") print_info(name="小明", age=18, city="深圳")

注意:参数是以“键=值”形式传递的关键字参数,这些“键=值”参数都会被kwargs接受,并合并封装为一个字典类型

注意:kwargs只是约定俗成的变量名,并不是关键字,这里可以使用任何合法的变量名(如:*options)

混合使用

# ==================== 6. 混合使用 ==================== # 参数顺序: 位置参数 -> 默认参数 -> *args -> **kwargs def func(a, b, c=10, *args, **kwargs): print(f"a={a}, b={b}, c={c}") print(f"args={args}") print(f"kwargs={kwargs}") func(1, 2) #a=1, b=2, c=10 args=() kwargs={} func(1, 2, 3) #a=1, b=2, c=3 args=() kwargs={} func(1, 2, 3, 4, 5) #a=1, b=2, c=3 args=(4, 5) kwargs={} func(1, 2, 3, 4, 5, name="测试", value=100) #a=1, b=2, c=3 args=(4, 5) kwargs={'name': '测试', 'value': 100}

参数解包

def add(a, b, c): return a + b + c # 列表/元组解包 (使用 *) nums = [1, 2, 3] print(f"列表解包结果: {add(*nums)}") # 字典解包 (使用 **) params = {"a": 10, "b": 20, "c": 30} print(f"字典解包结果: {add(**params)}")
http://www.jsqmd.com/news/1139679/

相关文章:

  • Blender 5.1.1中文版安装与Python 3.13工作流配置指南
  • (含安装包)小白零基础 Windows 安装 OpenClaw,全程可视化操作,附最新安装包
  • openEuler WSL 开发者指南:在 Windows 上搭建完整的 openEuler 开发环境
  • Grafana Dashboard 配置
  • HTTPS 粗解:证书、TLS 握手与对后端配置的影响
  • RowHammer防御机制中的时序侧信道漏洞:从DRAM物理原理到信息泄露
  • 戈壁自驾游备用电机携带与应急方案指南
  • 应对Go代码逆向工程挑战的garble深度解析:现代企业级应用安全加固方案
  • Codeforces Round 235 D. Roman and Numbers
  • 餐桌上的“隐形增效剂”:一文读懂甲氧苄啶的安全逻辑与快检科普
  • SSRF漏洞深度解析:原理、利用、绕过与纵深防御实战
  • 解决文件正在使用无法删除,顽固文件清理工具超好用
  • 计算机毕业设计之基于Web技术的测试管理工具设计与实现
  • 抖音无水印下载终极指南:简单三步搞定批量下载
  • 晨控CK-FR101ANS与松下FP0H系列PLC配置EtherNet/IP通讯连接手册
  • 【Azure Services Platform Step by Step-第13篇】在Windows Azure中使用PHP
  • Cadence Allegro 17.4 差分对设置:CM约束管理器 Electrical vs Physical 3大核心差异详解
  • 2026大容量破壁机冷热双用,3-6人使用刚刚好
  • 大模型破解医疗数据困境:从非结构化文本到可计算知识
  • 当40岁失业门将沃齐尼亚扑出梅西4次必进球,我悟了:这就是Hermes Agent 自进化架构的终极形态
  • ADS 2024 PI仿真:电容ESR/ESL/C三参数对阻抗曲线影响的3种量化分析
  • 增量式 vs 位置式 PID:直流电机双闭环控制5组参数实测与选型指南
  • 加强版curl编写
  • CTF网络取证实战:20个Wireshark高效解题技巧
  • SRAM vs DRAM 性能对比:从6管单元到1T1C,延迟差10倍的硬件原理
  • 基于OpenClaw多Agent系统构建Obsidian智能记忆系统实践
  • Hermes Agent网关:多智能体协同的运行时中枢与生产落地指南
  • Sklearn 1.4 回归评估指标实战:6大指标在糖尿病数据集上的量化对比
  • Windows 11 TensorFlow GPU 3种替代方案评测:WSL2 vs Docker vs 降级2.10
  • B300 GPU维修实践:5类高频故障现象及Root Cause分析