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

相关推荐
安娜的信息安全说9 分钟前
LangGraph:构建智能工作流的新方式
python·ai·langgraph
爱吃泡芙的小白白41 分钟前
如何在现有配置好环境的Pycharm中安装jupyterlab这个工具
ide·python·pycharm·notebook·虚拟环境·jupyterlab
六毛的毛1 小时前
比较含退格的字符串
开发语言·python·leetcode
小鸡吃米…1 小时前
机器学习 - Python 库
人工智能·python·机器学习
xingzhemengyou11 小时前
Python GUI之tkinter-基础控件
开发语言·python
在屏幕前出油2 小时前
Python面向对象编程基础——类、实例对象与内存空间
开发语言·python
天天进步20152 小时前
如何通过 Py_Initialize 实现 C++ 对 Python 的嵌入调用
python
Niuguangshuo2 小时前
# PyTorch 中 `nn.ModuleList` 详解
人工智能·pytorch·python
BoBoZz192 小时前
ResetCameraOrientation 保存、修改和恢复摄像机的精确视角参数
python·vtk·图形渲染·图形处理
aloha_7892 小时前
python基础面经八股
开发语言·python