当我尝试向某个类中的字典添加条目时,它将覆盖该类所有其他实例中的字典。有没有办法使字典对于类的每个实例都是唯一的?
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.dictionary
和b.dictionary
是两个独立的实体,因此更改一个实体不会对另一个实体产生影响。有没有一种方法可以使a
和b
具有唯一的字典,以便我可以操纵一个字典而又不影响另一个字典,所以a.dictionary["abc"]
是"Hello, World!"
和b.dictionary["abc"]
是"Goodbye, World!"
吗?
答案 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
在这种情况下将引用该特定对象。