在 Python 当中的函数调用当中, numpy 和 torch.tensor 都 是按照 引用传递 传到函数里面的,也就是说 修改 传入函数的 形参,也会导致 未传入之前的形参 发生 变化。
position 是一个 tensor; 下面这段代码第一行,如果在函数里面修改 position 会导致 下面的 position 也会发生变化
## 两段代码都用到 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 的数值不会发生变换。文章来源地址https://www.toymoban.com/news/detail-636995.html
结论: 当函数的参数是 : numpy 数组, Tensor, 列表 List 作为形参, 发生的都是 引用传递。
文章来源:https://www.toymoban.com/news/detail-636995.html
到了这里,关于Python 中的值传递 和 引用传递的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!