两个实例引用同一个对象

时间:2014-07-30 15:11:10

标签: python class

我有一个看起来像这样的课程:

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
>>> 

我显然做错了什么。

问题:

  1. ab的实例引用同一个对象。
  2. 期望的输出:

    >>> a = A()
    >>> b = A()
    >>> 
    >>> b.info['num']
    0
    >>> a.info['num'] = 1
    >>> b.info['num']
    0
    >>> 
    

    问题:

    1. 如何更改课程以保持此"模板"是info
    2. 为什么当前的approuch不起作用?

0 个答案:

没有答案