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 作为形参, 发生的都是 引用传递。

相关推荐
u0110225121 分钟前
c++怎么将两个有序的文本文件合并成一个新的有序文件【实战】
jvm·数据库·python
_376271533 分钟前
CSS如何控制全屏显示的元素样式
jvm·数据库·python
谙弆悕博士6 分钟前
Python快速学习——第5章:集合
python·学习
iAm_Ike9 分钟前
c++如何利用std--chrono计算文件操作的微秒级耗时性能分析【详解】
jvm·数据库·python
七颗糖很甜10 分钟前
卫星通信遇到“太空天气”会怎样---电离层闪烁对卫星通信的影响
大数据·python·算法
高木木的博客12 分钟前
数字架构智能化测试平台(2)--AI DevOps测试流程框架
python·llm·fastapi·cicd
2401_8800714012 分钟前
如何检查SQL注入漏洞覆盖率_使用漏洞管理平台监控
jvm·数据库·python
X566114 分钟前
Go语言怎么做六边形架构_Go语言六边形架构教程【简明】
jvm·数据库·python
m0_6245785915 分钟前
HTML标签不区分大小写吗_标签大小写规范建议【解答】
jvm·数据库·python
CLX050516 分钟前
SQL如何计算字符串的长度:LENGTH与CHAR_LENGTH用法
jvm·数据库·python