为了账号安全,请及时绑定邮箱和手机立即绑定

将对象设置为 None 不会更新所有引用

将对象设置为 None 不会更新所有引用

ABOUTYOU 2023-08-03 17:05:26
所以我有这段代码.........print(F"node id {id(node)}")print(F"left child id {id(prevNode.get_left_child())}")node = Noneprint(F"node id {id(node)}")print(F"left child id {id(prevNode.get_left_child())}...这给了我以下输出:node id 4860975032left child id 4860975032node id 4383750560left child id 4860975032我本来期望:node id 4860975032left child id 4860975032node id 4383750560left child id 4383750560prevNode.get_left_child()指向该node对象,但是当我将 node对象设置为None它时,不会更新prevNode.get_left_child()引用。为什么是这样?
查看完整描述

2 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

在Python中,将变量设置为None仅意味着该变量不再指向它之前指向的位置,指向同一对象的其他变量名称以及该对象本身保持不变。



查看完整回答
反对 回复 2023-08-03
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您刚刚更改了变量指向的位置。您还没有接触过这些物体。


前:


None (4383750560)


objectA <-- prevNode

+-> left_child = objectB (4860975032) <-- node

后:


None (4383750560) <-- node


objectA <-- prevNode

+-> left_child = objectB (4860975032)


查看完整回答
反对 回复 2023-08-03
  • 2 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信