如何从dict继承的类中自动更新键?

时间:2018-07-26 14:05:38

标签: python dictionary subclass

我有一个从dict类继承的类。在下面的示例中,我定义了两个键“ x”和“ x2”,其默认值为

class myClass(dict):
   def __init__(self,*arg,**kw):
      super(myClass, self).__init__(*arg, **kw)
      self['x']=2
      self['x2']=self['x']*self['x']

我希望它们以某种方式链接,以便如果我修改'x''x2'x*x更新,并且如果我修改'x2',则{{ 1}}更新为'x'

我找到了一篇帖子,解释了针对类属性执行此操作的解决方案:In class object, how to auto update attributes?

但是,我无法找到一种方法来扭曲此示例以使其适用于字典键。有人知道如何做吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

对于亚分类词典,建议使用with open() as f而非open()中的亚分类。使用UsedDict,您的所有内容都存储在collections.UserDict变量中。 Manual pages here

对于所需的功能,您可以重新定义dict特殊方法:

data

输出:

__setitem__