函数参数里 `*` 的作用( `*`/`*args` / `**kwargs` )

发布时间:2026/8/21 19:50:41

函数参数里 `*` 的作用( `*`/`*args` / `**kwargs` )
函数参数里*的作用仅限关键字传参keyword-only arguments1. 核心作用*单独放在函数形参列表中代表*后面所有参数调用时只能用「关键字传参」不能用位置传参。看你代码defexecute_agent_plan(*,run_id:int,task:str,task_type:str,top_k:int,plan:list[AgentPlanStep],memory:dict[str,Any],)-dict:*在最开头意味着这个函数所有参数都必须关键字传入。2. 正反示例✅ 合法调用关键字传参execute_agent_plan(run_id1,task查询数据,task_typesearch,top_k5,plan[],memory{})❌ 非法调用位置传参直接报错 TypeError# 报错execute_agent_plan() takes 0 positional arguments but 6 were givenexecute_agent_plan(1,查询数据,search,5,[],{})3. 两种常见*用法区分① 单独*强制后面只能关键字传参deffunc(a,*,b,c):passfunc(1,b2,c3)# okfunc(1,2,3)# 报错②*args可变位置参数收集多余位置参数deffunc(a,*args,b,c):passfunc(1,99,100,b2,c3)4. 为什么工程代码Agent/后端喜欢这么写可读性极强调用时每个参数都带名字一眼看懂含义不会传错顺序接口稳定后续新增参数、调整参数顺序不会破坏旧调用代码适合参数多的函数像你这个Agent执行计划6个入参避免位置混淆框架/工具库标准规范FastAPI、LangChain、自定义Agent系统大量使用。5. 补充小细节*本身不接收任何值只是语法分隔符*前面可以放普通位置参数后面强制关键字defdemo(x,*,y,z):...demo(1,y2,z3)# 允许x位置传y/z必须关键字你的代码*在第一个位置代表无任何位置参数全部强制关键字。*args/**kwargs 两个核心符号1.*args处理「位置参数」作用收集所有多余的位置传参打包成元组 tuple。defdemo(a,*args):print(a)print(args,type(args))demo(10,20,30,40)# a 10# args (20, 30, 40) 元组解包调用时用*把列表/元组拆开变成多个位置参数nums[1,2,3]demo(0,*nums)# 等价 demo(0,1,2,3)关键规则只要出现*args它后面的普通参数必须关键字传参deff(x,*args,y):passf(1,2,3,y99)# 合法# f(1,2,3,99) 报错2.**kwargs处理「关键字参数」作用收集所有多余的关键字传参打包成字典 dict。defdemo(a,**kwargs):print(a)print(kwargs,type(kwargs))demo(10,b20,c30)# a 10# kwargs {b:20, c:30} 字典解包调用时用**把字典拆开批量传关键字参数params{x:1,y:2}demo(0,**params)# 等价 demo(0, x1, y2)限制**kwargs必须放在所有参数最后不能后面跟普通参数# 语法报错kwargs后不能有cdefbad(a,**kwargs,c):pass组合写法工程最常用deffunc(a,*args,b,c,**kwargs):pass执行逻辑顺序固定位置参数a多余位置全部进args元组args之后b、c只能关键字传剩下所有自定义关键字进入kwargs字典调用示例func(1,2,3,b10,c20,d30,e40)# a1# args(2,3)# b10 c20# kwargs{d:30,e:40}*单独分隔符 vs*args对比def f(*, x, y)无可变位置参数全部参数强制关键字不能多传位置值。def f(*args, x, y)允许传任意多位置参数给 argsx、y 仍必须关键字传入。速记口诀单星*→ 管位置参数打包成元组双星**→ 管关键字参数打包成字典函数定义先普通参数 →*args→ 仅限关键字参数 →**kwargs函数调用*拆列表/元组**拆字典

相关新闻

金仓集群无备份盘备-主轮询小版本升级实施步骤

金仓集群无备份盘备-主轮询小版本升级实施步骤

2026/8/21 19:50:41

董小姐 | 实战派DBA 国产数据库先行者 🏆 认证矩阵:Oracle 11g OCM / KCM / OBCP 4.0 / PGCE / 🏅 行业荣誉:墨天轮技术专家 & 2024年度优秀作者 | ITpub技术专家 | IFClub智库星系成员| 金仓KVA 📝 写作成绩&…

5分钟完成 Windows 和 Office 的 KMS 激活:从下载到验证的完整流程

5分钟完成 Windows 和 Office 的 KMS 激活:从下载到验证的完整流程

2026/8/21 19:50:41

5分钟完成 Windows 和 Office 的 KMS 激活:从下载到验证的完整流程 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO KMS_VL_ALL_AIO 是一款可以在 Windows 上运行的免费 KMS 本地激活…

AI写作辅助网站完全指南:从语法纠错到查重降AI,这一篇承包你的全部痛点

AI写作辅助网站完全指南:从语法纠错到查重降AI,这一篇承包你的全部痛点

2026/8/21 19:50:41

论文写完了,但总觉得哪里不对劲?别急,AI 工具真的能帮你把初稿打磨成合格的终稿。每年毕业季,后台总能看到这样的提问:“论文写完了,怎么改才能过审?”作为曾经被查重率吓到怀疑人生的“过来人”…

整理了一套即梦AI 做视频教程资料,常用教程和示例都在里面

整理了一套即梦AI 做视频教程资料,常用教程和示例都在里面

2026/8/21 20:40:44

【资源介绍】 这次整理的是《即梦AI 做视频教程》资料合集。 内容已经按主题和目录分类,下载后可以直接查看使用。 【主要内容】 01|2025 02|2026即梦Seedance2.0:5套教程合集,40案例、全套提示词、素材包&#xff0c…

SolidWorks运动仿真实战:从齿轮啮合到铣床加工的动态验证

SolidWorks运动仿真实战:从齿轮啮合到铣床加工的动态验证

2026/8/21 20:40:44

最近在整理一个老项目,发现几年前用 SolidWorks 画的齿轮箱模型还在,但当时只做了静态装配,运动关系全靠想象。正好有个新同事问起,怎么才能让这个齿轮组“动”起来,直观地看到啮合过程,甚至模拟出加工时的…

Java面试核心知识点与备战策略全解析

Java面试核心知识点与备战策略全解析

2026/8/21 20:40:44

1. 为什么需要Java面试题库? 在互联网行业,Java作为主流编程语言已有20余年历史。根据2023年Stack Overflow开发者调查,Java在全球范围内仍保持着Top 5的编程语言地位。国内一线互联网企业的后端服务中,Java技术栈占比超过60%。这…

Go + webrpc 实战:人在外面,远程查家里 NAS 磁盘和目录

Go + webrpc 实战:人在外面,远程查家里 NAS 磁盘和目录

2026/8/21 20:40:44

独立开发者笔记,非官方教程。Token 与 SDK 见 webrpc 控制台。 人不在家里时,常会碰到两个很具体的问题: 家里的 NAS / 小主机还活着吗?磁盘还剩多少空间?某个目录里有没有把备份跑完? 用 frp 可以硬把 W…

呼吸道合胞病毒抗原检测试剂盒(胶体金法)说明书

呼吸道合胞病毒抗原检测试剂盒(胶体金法)说明书

2026/8/21 20:40:44

手足口病是春夏高发的肠道病毒传染性疾病,多见于5岁以下婴幼儿,传染性强、传播速度快,极易在幼儿园、校园等集体场所传播。感染后常伴随发热、口腔疱疹、手足臀部皮疹等症状,少数情况存在重 症风险,是儿童公共卫生重点…

2026/27五大联赛怎么看?英超西甲德甲开赛时间、观赛平台全攻略

2026/27五大联赛怎么看?英超西甲德甲开赛时间、观赛平台全攻略

2026/8/21 20:30:43

2026/27五大联赛新赛季全面开打,球迷的快乐又回来了。但面对英超、西甲、德甲、意甲、法甲,不少新球迷不知道具体赛事该去哪里看?看哪个?以及怎么投到电视上看?今天一篇全讲明白,帮你挑出最适合追的联赛。一…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/19 3:36:59

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/20 21:07:35

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

091、主从同步控制策略

091、主从同步控制策略

2026/8/21 0:09:47

091、主从同步控制策略:从一次多轴抖动事故说起 去年调试一台四轴龙门平台,Z轴和两个X轴做主从同步。电机选的是台达A2系列,驱动器工作在位置模式,主站发脉冲指令,从站硬线跟随。调试时发现一个诡异现象:当主站以500rpm匀速运行时,从站电流波形每隔几秒会出现一次毛刺,…

向量检索实验失败后该查什么

向量检索实验失败后该查什么

2026/8/21 0:09:47

向量检索实验失败后该查什么 这篇要解决什么 向量检索实验失败后该查什么讨论的是一个可复查的工程问题。向量检索实验失败后该查什么不拿未经记录的事故、跑分或成本当作论据;判断需要回到当前项目的输入、版本和运行条件。 从边界开始 处理向量检索实验失败后该查…

提示词发布过程中的止损边界

提示词发布过程中的止损边界

2026/8/21 0:09:47

提示词发布过程中的止损边界 这篇要解决什么 提示词发布过程中的止损边界讨论的是一个可复查的工程问题。提示词发布过程中的止损边界不拿未经记录的事故、跑分或成本当作论据;判断需要回到当前项目的输入、版本和运行条件。 从边界开始 处理提示词发布过程中的止损…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…