小编use*_*821的帖子

奇怪的Python行为 - 或者我错过了什么

以下代码:

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]一切按预期工作时.

有人可以解释这种行为吗?

python oop

4
推荐指数
1
解决办法
160
查看次数

标签 统计

oop ×1

python ×1