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

相关推荐
极光代码工作室26 分钟前
基于深度学习的手写数字识别系统
人工智能·python·深度学习·神经网络·机器学习
geovindu32 分钟前
python: speech to text offline
开发语言·python·语音识别
AI创界者42 分钟前
告别云端限制!Sulphur 2 本地文生视频/图生视频整合包,本地部署,解压即用,保姆级部署与工作流实战
人工智能·python·aigc·音视频
tsfy20031 小时前
Python批量调整Excel格式,并排版导出PDF
python·pdf·excel
木囧1 小时前
PyCharm手动创建虚拟环境
ide·python·pycharm
李可以量化1 小时前
QMT 量化实践:两种方式获取个股上市日期(内置 Python + 原生 Python 完整可运行代码)
python
是多巴胺不是尼古丁2 小时前
期末java复习--string
java·开发语言·python
garmin Chen2 小时前
从 Transformer 到 Agent:大模型技术全景解析
java·人工智能·python·深度学习·transformer
没有钱的钱仔2 小时前
pytorch_cuda安装
人工智能·pytorch·python
Full Stack Developme2 小时前
Apache Tika 教程
java·开发语言·python·apache