我有两个从枚举继承的类,我们称它们为Class1和Class2,即
class Class1(Enum):
ItemA = 'ItemA'
ItemB = 'ItemB'
ItemC = 'ItemC'
对于Class1中的每个项目,我希望有一个字典,其中包含Class2中的键和Class1中的值。基本上,我需要这样的东西,我可以在整个应用程序中访问的静态对象:
d = {Class1.ItemA: {Class2.ItemX: Class1.ItemB, Class2.ItemY: Class1.ItemC},
Class1.ItemB: {Class2.ItemX: Class1.ItemD, Class2.ItemY: Class1.ItemE}}
如何实现此目标,以便仍然可以使用诸如以下的内置字典魔术:
if Class1.ItemA in d
任何反馈表示赞赏:)
通过创建自定义类字典:
class Class1KeyDictionary():
def __init__(self, *args):
# Expect iterable of (key, value) pairs
self.dictionary = {key.value: value for key, value in args}
def __contains__(self, key):
return key.value in self.dictionary
Python类应该在字典查找中使用唯一的ID,这意味着在大多数情况下不必进行此类覆盖。