簡體   English   中英

Python 類似字典的設備,用於允許枚舉作為鍵的鍵值對

[英]Python dict-like device for key-value pairs that allows enums as keys

我有 2 個繼承自枚舉的類,我們稱它們為 Class1 和 Class2,即

class Class1(Enum):
    ItemA = 'ItemA'
    ItemB = 'ItemB'
    ItemC = 'ItemC'

對於 Class1 中的每個項目,我想要一個字典,其中包含 Class2 中的鍵和 Class1 中的值。 基本上我需要這樣的東西,一個 static object ,我可以在整個應用程序中訪問它:

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 字典:

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,這意味着在大多數情況下不需要這種覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM