我有一个非常具体的问题,我在网上找不到答案。我对Python代码(C++是我的第一语言)很陌生,所以我假设这只是一个语义问题。我的问题是关于在for循环范围内声明的对象。在
这段代码的目标是在for循环中创建一个新的临时对象,将一些项添加到它的列表中,然后将该对象放入for循环之外的列表中。在for循环的每次迭代中,我都希望创建一个新的、单独的对象来填充项。但是,每次for循环执行时,对象的列表中就已经填充了上一次迭代中的项。在
我有一个更大的程序也有同样的问题,但是我没有包括一个庞大的程序,而是写了一个小例子,它有同样的语义问题:#Test
class Example:
items = []
objList = []
for x in xrange(5):
Object = Example()
Object.items.append("Foo")
Object.items.append("Bar")
print Object.items
objList.append(Object)
print "Final lists: "
for x in objList:
print x.items
在程序结束时,objList中的每个项(甚至是第一次迭代的项)都包含
^{pr2}$
这使我相信这个示例(在本例中称为Object)不是在每次迭代中重新创建的,而是在每次迭代中维护,并在每次for循环继续时访问。在
我的一个简单问题;在python中,我如何更改它?在