可能重复:
“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的列表中添加了一个项目。他们现在如何分享名单呢。
谢谢,
亨利
答案 0 :(得分:1)
您将收到的所有评论的简短摘要:
问题与班级无关。这是因为您将值存储在函数的默认参数中,默认参数存储在函数对象中。