Python 计数迭代器仅追加最终计数值

Python 计数迭代器仅追加最终计数值,python,python-3.x,loops,counter,Python,Python 3.x,Loops,Counter,我有一个循环,它在用BeautifulSoup解析的xml文件中分配字符串 count = 0 for i in oosASINS: sku = str(i) message.sku.string = sku message.quantity.string = "0" stringnum = str(count) message.messageid.string = stringnum messages.append(message) count +=1 它应该制作一个

我有一个循环,它在用BeautifulSoup解析的xml文件中分配字符串

count = 0
for i in oosASINS:

 sku = str(i)
 message.sku.string = sku
 message.quantity.string = "0"
 stringnum = str(count)
 message.messageid.string = stringnum    
 messages.append(message)
 count +=1
它应该制作一个文档,其中分配给每个新消息集的消息id被一个(0,1,2…等)迭代,但它只附加1-最终计数值,因此我得到的是(65,65,65…),其中最终计数值为66


我对此感到困惑,因为直到前一个count变量被指定为messageid之后,计数才会增加,但它始终能够输出65,因为您没有在循环中创建另一个
消息
实例,因为

messages.append(message)
您的
消息
列表包含65次对
消息
对象的相同引用,并带有您最后分配给它的值

不知道如何创建
消息
,我可以建议您:

messages.append(copy.deepcopy(message))

但是最好的方法是在循环中创建一个新的
消息。

看起来您需要在循环中创建一个新的消息实例

重用与
消息
相同的引用,这是一个经典。在循环中实例化一个新的
消息
对象我不得不重写代码来生成一个新的“消息”,因为它最初是硬编码到软件中的。但在那之后,它起了作用。