Python 将元素添加到列表会更改所有元素

Python 将元素添加到列表会更改所有元素,python,Python,我对以下代码有问题 my_list = [] for i in xrange(1, 13): my_list.append(MyObject(year=year, month=i)) 我不知道为什么在调用append方法时,列表中的所有元素都被新元素替换。所以当循环完成时,列表中有12个相同的元素。请帮助。我怀疑问题出在MyObject类上 是否将年和月存储为类属性而不是实例变量?我怀疑问题出在MyObject类上 您是否将年和月存储为类属性而不是实例变量?循环

我对以下代码有问题

    my_list = []
    for i in xrange(1, 13):
        my_list.append(MyObject(year=year, month=i))

我不知道为什么在调用append方法时,列表中的所有元素都被新元素替换。所以当循环完成时,列表中有12个相同的元素。请帮助。

我怀疑问题出在MyObject类上


是否将年和月存储为类属性而不是实例变量?

我怀疑问题出在MyObject类上


您是否将年和月存储为类属性而不是实例变量?

循环后的
my_list
是什么样子?您对MyObject的实现是什么?我们现在没有什么可以处理的。你如何定义,所有的元素都是一样的?他们有相同的身份证吗?或者他们只有相同的年份和月份?检查它们是否具有不同的id(通过调用函数
id(您的\u对象)
)。如果是,问题出在MyObject的
\uuuuu init\uuuuuu
中请包括MyObject的实现
我的列表
在循环后是什么样子?您对MyObject的实现是什么?我们现在没有什么可以处理的。你如何定义,所有的元素都是一样的?他们有相同的身份证吗?或者他们只有相同的年份和月份?检查它们是否具有不同的id(通过调用函数
id(您的\u对象)
)。如果是,问题就出在MyObject的
\uuuuu init\uuuuu
中。请包括MyObject的实现,这是一个很大的问题:)Uff,这是一个很大的问题:)