当我尝试在某个类中创建字典时,它会覆盖该类的所有其他实例中的字典。

时间:2018-08-25 21:06:43

标签: python dictionary

当我尝试向某个类中的字典添加条目时,它将覆盖该类所有其他实例中的字典。有没有办法使字典对于类的每个实例都是唯一的?

class Object:
    dictionary = {}

    def __init__(self):
        return


a = Object()
a.dictionary["abc"] = "Hello, World!"

b = Object()
b.dictionary["abc"] = "Goodbye, World!"

print(a.dictionary["abc"])

在此示例中,它打印"Goodbye, World!"。我认为a.dictionaryb.dictionary是两个独立的实体,因此更改一个实体不会对另一个实体产生影响。有没有一种方法可以使ab具有唯一的字典,以便我可以操纵一个字典而又不影响另一个字典,所以a.dictionary["abc"]"Hello, World!"b.dictionary["abc"]"Goodbye, World!"吗?

1 个答案:

答案 0 :(得分:0)

您必须在PROJECT-ID@appspot.gserviceaccount.com内定义SERVICE-ACCOUNT@PROJECT-ID.iam.gserviceaccount.com

dictionary

如果在__init__(self)之外定义class Object: def __init__(self): self.dictionary = {} a = Object() a.dictionary['abc'] = 'Hello, World!' b = Object() b.dictionary['abc'] = 'Goodbye World!' print(a.dictionary['abc']) ,则对于dictionary的所有实例(在Java中类似于__init__(self)变量的情况)都是常见的。

如果您在Object内定义它,那么它将仅归因于某个对象的特定实例,这是因为static在这种情况下将引用该特定对象。