【发布时间】:2015-08-02 17:31:14
【问题描述】:
我有一个带有列表变量的类和一个将项目附加到此列表的函数。我不能直接附加项目,因为我必须验证它们:
class Foo:
def __init__(self, elements=[]):
self.elements = elements
def append(self, element):
self.elements.append(element)
如果我实例化这个类的一个对象,添加项目然后创建另一个新对象,这个对象包含第一个对象的项目。
foo = Foo()
print foo.elements # []
foo.append(element=4)
print foo.elements # [4]
foo.append(element=7)
print foo.elements # [4, 7]
bar = Foo()
print bar.elements # [4, 7]
谁能解释一下,为什么会这样?
对我来说可能的解决方案可能是这样,但我不喜欢它......
class Foo:
def __init__(self, elements=None):
if elements is None:
self.elements = []
else:
self.elements = elements
def append(self, element):
self.elements.append(element)
感谢所有回答!
【问题讨论】:
标签: python arrays list python-2.7 oop