Python 将对象设置为“无”不会更新所有引用
所以我有这段代码Python 将对象设置为“无”不会更新所有引用,python,Python,所以我有这段代码 ... print(F"node id {id(node)}") print(F"left child id {id(prevNode.get_left_child())}") node = None print(F"node id {id(node)}") print(F"left child id {id(prevNode.get_left_child())} ... 这为我提供了以下输出: node
...
print(F"node id {id(node)}")
print(F"left child id {id(prevNode.get_left_child())}")
node = None
print(F"node id {id(node)}")
print(F"left child id {id(prevNode.get_left_child())}
...
这为我提供了以下输出:
node id 4860975032
left child id 4860975032
node id 4383750560
left child id 4860975032
我原以为:
node id 4860975032
left child id 4860975032
node id 4383750560
left child id 4383750560
prevNode.get_left_child()
指向节点
对象,但当我将节点
对象设置为无
时,它不会更新prevNode.get_left_child()
引用。这是为什么?在Python中,将变量设置为None
只意味着变量不再指向它之前指向的位置,其他变量名称指向同一对象,而对象本身保持不变。您只是更改了变量指向的位置。你没有碰过这些东西
之前:
None (4383750560)
objectA <-- prevNode
+-> left_child = objectB (4860975032) <-- node
None(4383750560)
objectA left_child=objectB(4860975032)你是什么意思?字符串格式没有大写字母F
。它工作得很好,你可以同时使用F
和F
afaik.Mm,我现在怀疑我自己。我不认为你can@wjandrea我现在才有机会进行测试,而且确实有效。我对此有点恼火,但我感谢你的回答。所以我想将所有指向这个对象的变量设置为不指向这个对象。我将如何实现这一点?好吧,这在Python中要复杂得多。您可以做一些变通方法来实现这一点,但这就是Python处理变量的方式。你可以读更多。
None (4383750560) <-- node
objectA <-- prevNode
+-> left_child = objectB (4860975032)