Python 中的值传递 和 引用传递

在 Python 当中的函数调用当中, numpy 和 torch.tensor 都 是按照 引用传递 传到函数里面的,也就是说 修改 传入函数的 形参,也会导致 未传入之前的形参 发生 变化。

position 是一个 tensor; 下面这段代码第一行,如果在函数里面修改 position 会导致 下面的 position 也会发生变化

python 复制代码
  ## 两段代码都用到 position 这个变量
  gt_semantics = self.Occ3d.get_occ3d_gt(position_w=position)
  gt_semantics = self.Occ3d.get_occ3d_gt(position_w=position.clone())
  pred_semantics = self.Occ3d.get_pos_pred_semantics(position=position)

在第二行加上 clone 函数 之后,才可以保证执行完 第二行之后 的 position 的数值不会发生变换。

结论: 当函数的参数是 : numpy 数组, Tensor, 列表 List 作为形参, 发生的都是 引用传递。

相关推荐
zx_74148481几秒前
【Python入门】爬虫实战:Requests + XPath 从基础到实战
开发语言·爬虫·python
高洁012 分钟前
Teacher Forcing技术解析
人工智能·python·深度学习·transformer·知识图谱
2601_9620652511 分钟前
从零创建一个 Django 项目
后端·python·django
溪语流沙28 分钟前
【Python项目实战】虚拟环境与依赖管理:venv / pip / requirements.txt实操
开发语言·python·pip
梯度下降者1 小时前
CukeTest 自动化测试工具2023年度回顾白皮书
自动化测试·python·cuketest·qtquick/qml·linuxatk
circuitsosk1 小时前
从零搭建行业知识平台:向量库+图数据库+传统关系库的多模检索统一层设计
数据库·python·oracle·向量数据库·rag·多模检索
whcyhhh2 小时前
头歌实践教学平台:大数据存储2023(十三3)
大数据·开发语言·python
AR-26710-2 小时前
机器学习复习Day8——异常检测
人工智能·python·机器学习·scikit-learn
千里码aicood2 小时前
Django 基于Django的电脑推荐与分析可视化系统设计与实现
python·django·电脑
未若君雅裁2 小时前
Agent 的结构化输出,ProviderStrategy、ToolStrategy 与错误重试
python·langchain