以下代码:
class House:
links = []
class Link:
pass
class Villa(House):
pass
if __name__ == '__main__':
house = House()
villa = Villa()
link = Link()
house.links.append(link)
print house.links
print villa.links
Run Code Online (Sandbox Code Playgroud)
结果输出:
[<__main__.Link instance at 0xb65a4b0c>]
[<__main__.Link instance at 0xb65a4b0c>]
Run Code Online (Sandbox Code Playgroud)
我觉得这很奇怪:既然是另一个例子? - 我原以为输出是 - 因为它是另一个实例?:
[<__main__.Link instance at 0xb65a4b0c>]
[]
Run Code Online (Sandbox Code Playgroud)
将行更改house.links.append(link)为house.links = [link]一切按预期工作时.
有人可以解释这种行为吗?