Python 中用于存储键值对的类与字典

for*_*ran 5 python inheritance dictionary class

我需要定义一些键值参数来配置类的行为。我的要求有两个:

  • 能够以编程方式处理它们
  • 能够进行更具体的配置来覆盖某些值。

第一个要求的自然方法是使用 a dict(这样我就可以用循环遍历键、值或项目for),但对于第二个要求,使用类层次结构并让属性查找机制来执行以下操作似乎更合适工作(另外我还得到了其他好处,比如能够使用某些值的属性)。

有没有办法两全其美?


阅读评论后,它不需要是可变的(我不会更改已创建实例的值),它只是用于静态配置。但我可能需要在更具体的实例中添加新值。

我想最后我可以只使用dict.copy+dict.update来表示特定的实例(我可以在没有属性的情况下生活)。

Aar*_*lin 1

如果你可以使用 python 3.3 ChainMap 正是你想要的。

http://docs.python.org/3.3/library/collections#collections.ChainMap

它基本上是一个字典列表,并将按顺序在每个字典中查找给定的键,直到找到匹配项。

实际上,这是在 2.7 中使用它的代码:

http://code.activestate.com/recipes/305268-chained-map-lookups/