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

相关推荐
PythonicCC17 分钟前
基于Python Socket的多线程聊天程序案例分析
python
Dxy123931021634 分钟前
NLTK 语料库与词典资源
python
站大爷IP43 分钟前
Python中main函数:代码结构的基石
python
爱心发电丶1 小时前
WePush 一款基于模拟点击实现的微信消息推送机器人,安全稳定不封号
python
Conan х1 小时前
进阶篇 第 6 篇:时间序列遇见机器学习与深度学习
人工智能·python·深度学习·算法·机器学习·数据分析
程序员秘密基地2 小时前
基于pycharm,python,django,pytorch,mysql,深度学习,模型训练,在线植物,花卉分类系统
pytorch·python·深度学习·神经网络·django
lixy5792 小时前
深度学习3.1 线性回归
人工智能·python·深度学习·线性回归
海洋与大气科学2 小时前
【matlab|python】矢量棍棒图应用场景和代码
开发语言·python·matlab
中国lanwp3 小时前
Anaconda 与 Miniconda 的差异详解
python
攻城狮7号3 小时前
Python爬虫第16节-动态渲染页面抓取之Selenium使用上篇
爬虫·python·python爬虫