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

函数参数的解包与顺序匹配机制

函数参数的解包与顺序匹配机制

  • 使用 * 顺序传参
  • 使用 ** 按名称传参

使用 * 顺序传参

星号 * 表示序列解包,train_data 应该是一个有序的序列(如 list、tuple、或者 np.ndarray 的元组结构),解包后将按顺序传入函数的剩余位置参数。

train_data = (a,  # 学生能力e,  # 练习题IDc,  # 回答正确情况it, # 交互时间at, # 学生属性diff, # 题目难度pc,  # 知识点主成分skill_forget  # 知识遗忘信息
)train_one_epoch(self.lpkt_net, optimizer, criterion, self.batch_size, *train_data)#等价于手动写成:train_one_epoch(self.lpkt_net, optimizer, criterion, self.batch_size,a, e, c, it, at, diff, pc, skill_forget)

使用 ** 按名称传参

💡 注意:加了 *, 表示从 a_data 开始的所有参数必须使用关键字传参!

def train_one_epoch(net, optimizer, criterion, batch_size, *,a_data=None, e_data=None, c_data=None,it_data=None, at_data=None, diff_data=None,pc_data=None, skill_forget_data=None):print("a_data:", a_data)print("e_data:", e_data)print("c_data:", c_data)data_dict = {"a_data": [1, 2, 3],"e_data": [101, 102, 103],"c_data": [1, 0, 1],"it_data": [10, 20, 30],"at_data": [0.5, 0.6, 0.7],"diff_data": [0.2, 0.3, 0.4],"pc_data": [0.1, 0.2, 0.3],"skill_forget_data": [0, 1, 0]
}train_one_epoch(net="模型", optimizer="优化器", criterion="损失函数", batch_size=32, **data_dict
)

✅ 输出结果:

a_data: [1, 2, 3]
e_data: [101, 102, 103]
c_data: [1, 0, 1]
...

你会发现,即使你换了 data_dict 中键的顺序,也能正确传入对应参数,只要键名与函数参数名一致即可。

http://www.dtcms.com/a/299985.html

相关文章:

  • Go的管道——channel
  • HTML5元素相关补充
  • HighlightingSystem
  • MATLAB近红外光谱分析技术及实践技术应用
  • C++ 类型萃取:深入理解与实践
  • 【AcWing 143题解】最大异或对
  • Android-广播详解
  • 零拷贝应用场景
  • 【Spring AI】大模型服务平台-阿里云百炼
  • 基于cooragent的旅游多智能体的MCP组件安装与其开发
  • javaSE 6
  • connect系统调用及示例
  • Go-Elasticsearch v9 安装与版本兼容性
  • Docker常用命令详解:以Nginx为例
  • 求hom_math_2d的角度值
  • Aerospike架构深度解析:打造web级分布式应用的理想数据库
  • JS实现数字变化时,上下翻滚动画效果
  • 本地部署智能家居集成解决方案 ESPHome 并实现外部访问
  • 五分钟系列-文本搜索工具grep
  • 【工具】好用的浏览器AI助手
  • 【MySQL】VARCHAR(10) 和 VARCHAR(100) 的区别
  • 大模型蒸馏(distillation)---从DeepseekR1-1.5B到Qwen-2.5-1.5B蒸馏
  • 拒绝SQL恐惧:用Python+pyqt打造任意Excel数据库查询系统
  • C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(四)
  • 丝杆升降机应用在食品机械行业有什么特殊的要求吗
  • Java BeanUtils 类详解:作用、语法与示例
  • springboot 基于签名的安全通信
  • 深入解析YARN中的FairScheduler与CapacityScheduler:资源分配策略的核心区别
  • Aerospike Java客户端进阶:对象映射与Spring Data集成实战
  • spring Could 高频面试题