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

相关推荐
徐先生 @_@|||35 分钟前
基于Translation插件实现在pycharm本地翻译并阅读英文资料
ide·python·pycharm
xcbrand1 小时前
文旅行业品牌策划公司找哪家
大数据·运维·人工智能·python
好家伙VCC1 小时前
**发散创新:基于Rust的轻量级权限管理库设计与开源许可证实践**在现代分布式系统中,**权限控制(RBAC
java·开发语言·python·rust·开源
Dxy12393102161 小时前
Python序列标注模型上下文纠错详解
开发语言·python
ZhengEnCi1 小时前
P2H-Python字符串格式化完全指南-format和f-string的Python编程利器
python
HaiXCoder1 小时前
python从入门到精通-第5章: 函数式编程 — Python的函数式风格
python
HaiXCoder1 小时前
python从入门到精通-第0章: 思维模式碰撞
python
HaiXCoder1 小时前
python从入门到精通-第3章: 数据结构 — Python的"瑞士军刀
python
Orange_sparkle1 小时前
learn claude code学习记录-S02
java·python·学习
小郑加油1 小时前
python学习Day1:python的安装与环境搭载
python·学习·小白记录,保姆式教程