我有一个从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?
但是,我无法找到一种方法来扭曲此示例以使其适用于字典键。有人知道如何做吗?
谢谢!
答案 0 :(得分:1)
对于亚分类词典,建议使用with open() as f
而非open()
中的亚分类。使用UsedDict,您的所有内容都存储在collections.UserDict
变量中。 Manual pages here。
对于所需的功能,您可以重新定义dict
特殊方法:
data
输出:
__setitem__