将类的实例追加到列表会覆盖以前的实例属性

所以我试图使用嵌套的while循环生成类对象的列表。我有两种类型的类,normal_class和special_class。

对于special_class,我通过执行special_class.set(x,y)为其赋予x,y坐标。对于普通班,我只是保持原样。

如果我通过执行special_class.set(x,y)来附加另一个special_class,然后ls.append(special_class)会覆盖第一个的坐标,所以我最终得到两个具有相同坐标的special_class,而不是两个具有单独坐标的special_class 。

我只是最近才开始用Python编程,所以任何帮助都将是有用的:)

这是一些伪代码:

  1. 输入是一个字符串,即。 “ XXY”
  2. 我将这些字符中的每一个与我创建的字典进行比较。 dict = {“ X”:special_class(),“ Y”:normal_class}
  3. 我想设置special_class的坐标,normal_class没有坐标属性
  4. 如果字典中的character_from_string ==键,请检查它是特殊类还是普通类。然后使用值对
  5. 如果是特殊类,请为某些数字x,y使用set_pos(x,y)。如果正常,通过
  6. 将类实例追加到列表
  7. 所以我希望输出诸如[special_class对象,special_class对象,normal_class对象]
  8. 如果我执行ls [0] .get_pos和ls [1] .get_pos,即使我将其设置为不同的x,y,它也会返回相同的值。为什么?我该如何解决呢?