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

相关推荐
baidu_340998821 分钟前
mysql如何导出表结构而不导出数据_mysqldump无数据模式
jvm·数据库·python
Wyz201210242 分钟前
C#怎么判断网络是否掉线_C#如何实现心跳包检测机制【进阶】
jvm·数据库·python
m0_377618233 分钟前
Redis如何利用位图快速判断数据存在性
jvm·数据库·python
Ares-Wang3 分钟前
flask》》信号
后端·python·flask
2401_835956814 分钟前
Vue 3 中集成 Three.js 场景的完整实现指南
jvm·数据库·python
Irene19914 分钟前
Python 中的全局变量 global 和 globals()
python
weixin_568996065 分钟前
CSS移动端实现卡片悬浮投影_利用box-shadow设置层次感
jvm·数据库·python
Polar__Star6 分钟前
Go语言怎么做自动补全_Go语言CLI自动补全教程【经典】
jvm·数据库·python
qq_424098567 分钟前
CSS如何去掉数字输入框的默认微调按钮_利用---webkit-inner-spin-button
jvm·数据库·python
Full Stack Developme7 分钟前
Hutool File 教程
linux·windows·python