【发布时间】:2012-06-10 17:44:42
【问题描述】:
我在 Python 中遇到了一个问题,我不敢相信会发现。见以下代码:
class Container(object):
array = []
def __init__(self):
print self.array
for i in range(0, 5):
container = Container()
container.array.append('Test')
print 'Last Container:', container.array
输出是:
[]
['Test']
['Test', 'Test']
['Test', 'Test', 'Test']
['Test', 'Test', 'Test', 'Test']
Last Container: ['Test', 'Test', 'Test', 'Test', 'Test']
我认为Container 类在实例化时使用顶部的值进行初始化。为什么不是这样?
谢谢!
【问题讨论】:
-
哦,可变类变量的乐趣..
-
@DanielRoseman:这不是关于默认参数,而是关于类属性。
-
啊,抱歉,放错了。不过仍然是重复的。
标签: python arrays append instance instantiation