好吧,问题就在标题中:如何定义具有不可变键但可变值的 python 字典?我想出了这个(在python 2.x中):
class FixedDict(dict):
"""
A dictionary with a fixed set of keys
"""
def __init__(self, dictionary):
dict.__init__(self)
for key in dictionary.keys():
dict.__setitem__(self, key, dictionary[key])
def __setitem__(self, key, item):
if key not in self:
raise KeyError("The key '" +key+"' is not defined")
dict.__setitem__(self, key, item)
但在我看来(不出所料)相当草率。特别是,这是安全的还是存在实际更改/添加一些键的风险,因为我是从 dict 继承的?谢谢。