Python字典和列表里面的类更新和追加

时间:2014-09-25 01:03:56

标签: python list class dictionary

我有这个非常烦人的问题而且不知道为什么会这样。 我有这门课:

class Person:
my_dict = {}
my_list = []
... other attributes

...


def add_dic(self, key, val):
    self.my_dict.update({key: val})

def add_to_list(self, i):
    self.my_list.append(i)

当我创建时:

person1 = Person('name1')
person2 = Person('name2')

person1.add_dic(1,2)
person2.add_dic(3,4)

print person1.my_dict

#{1:2, 3:4}   when to me it should be {1:2}

为什么person1会更新person2的更新? person1中的更新会影响person2,同样的问题也会发生。附加列表时会出现同样的问题。

如何解决此问题以单独获取更新?也许有一个我不清楚的Python概念。

可以在课堂上附加或更新哪种解决方案?不创建时态变量,然后更新该变量并写入字典或列表。

2 个答案:

答案 0 :(得分:1)

您创建了类变量而不是实例变量。检查一下:Instance vs Class Variables

答案 1 :(得分:1)

__init__()

中有什么内容

目前 my_dict = {}my_list = []在整个班级之间共享

如果你添加

def __init__(self, name):
    self.my_dict = {};

然后它应该解决问题

相关问题