Python:无法解释类成员列表行为

时间:2012-07-10 20:05:24

标签: python list class

  

可能重复:
  “Least Astonishment” in Python: The Mutable Default Argument
  Default values for arguments

我无法解释属于某个类的列表的行为。

>>> class A(object):
...     def __init__(self, L=[]):
...         self.L = L
...
>>> a1 = A()
>>> a2 = A()
>>> a1.L.append("test")
>>> print a1.L
['test']
>>> print a2.L
['test']

在这个例子中,a2.L是如何得到一个值的?我只在a1的列表中添加了一个项目。他们现在如何分享名单呢。

谢谢,

亨利

1 个答案:

答案 0 :(得分:1)

您将收到的所有评论的简短摘要:

问题与班级无关。这是因为您将值存储在函数的默认参数中,默认参数存储在函数对象中。