我需要的是像这样的东西:
但是我需要这样使用它:
请注意,我想要的是像属性一样访问字典值。 这个线程 有一个答案,也可以在我的情况下使用,即我将上面的子字典制作为对象,并将其作为值赋给主字典。
但我想知道是否有更好的方法,也许可以使用装饰器,并且代码行数更少,甚至可以不使用字典来完成像我在第一行描述的操作,或者更好地完成此操作:
self.info['key'].attr2
但我不确定最优雅的方式是什么。到目前为止,我已经定义了一个类似于下面这样的字典,但它没有其中的属性。
self.info = {}
self.info.update({'key':
{'attr1': 2,
'attr2': lambda: self.func(arg1)}
})
但是我需要这样使用它:
但是我需要像这样使用它:
self.info['key']['attr2']()
请注意,我想要的是像属性一样访问字典值。 这个线程 有一个答案,也可以在我的情况下使用,即我将上面的子字典制作为对象,并将其作为值赋给主字典。
但我想知道是否有更好的方法,也许可以使用装饰器,并且代码行数更少,甚至可以不使用字典来完成像我在第一行描述的操作,或者更好地完成此操作:
self['key'].attr2
collections.namedtuple
,就像你在链接中提到的那样? - dspencer