我完全被一个更大系统中的错误弄糊涂了。考虑这个类(每个节点都维护一个指向其父节点的指针和一个子节点列表):
class Node:
children = []
def __init__(self, parent):
self.contents = dict()
self.parent = parent
if parent is not None:
print self.children
print parent == self
parent.children.append(self)
print self.children
运行这个:
foo1 = Node(None)
foo2 = Node(foo1)
神秘地返回这个:
[]
False
[<__main__.Node instance at 0x10051f128>]
这有什么意义呢?为什么第二个节点的子节点不为空?也许我缺少对与 Python 如何传递引用相关的概念的基本理解。