我有一个看起来像这样的课程:
class A(dict):
info = {'num': 0}
def __init__(self, **kwargs):
self.__dict__.setdefault('info', self.info)
当我创建此类的实例时,它们引用了同一个对象:
>>> a = A()
>>> b = A()
>>>
>>> b.info['num']
0
>>> a.info['num'] = 1
>>> b.info['num']
1
>>>
我显然做错了什么。
a
和b
的实例引用同一个对象。>>> a = A()
>>> b = A()
>>>
>>> b.info['num']
0
>>> a.info['num'] = 1
>>> b.info['num']
0
>>>
info
?