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

相关推荐
APIshop15 分钟前
实战解析:苏宁易购 item_search 按关键字搜索商品API接口
开发语言·chrome·python
蓝桉~MLGT25 分钟前
Python学习历程——Python面向对象编程详解
开发语言·python·学习
larance30 分钟前
Python 中的 *args 和 **kwargs
开发语言·python
百锦再37 分钟前
选择Rust的理由:从内存管理到抛弃抽象
android·java·开发语言·后端·python·rust·go
yaoxin52112338 分钟前
238. Java 集合 - 使用 ListIterator 遍历 List 元素
java·python·list
nvd111 小时前
python 后端流式处理 LLM 响应数据详解
开发语言·python
F_D_Z1 小时前
【解决办法】报错Found dtype Long but expected Float
人工智能·python
fanjinhong_85211 小时前
屏幕捕捉工具 (Screen Capture Tool)
python·github
避避风港3 小时前
Java 抽象类
java·开发语言·python
武子康4 小时前
Java-168 Neo4j CQL 实战:WHERE、DELETE/DETACH、SET、排序与分页
java·开发语言·数据库·python·sql·nosql·neo4j