-2

可能重复:
Python 中的“Least Astonishment”:可变默认参数 参数的
默认值

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

>>> 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 的列表中添加了一个项目。他们现在如何共享列表。

谢谢,

亨利

4

1 回答 1

1

您将获得的所有评论的简短摘要:

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

于 2012-07-10T20:08:34.783 回答