Python 当按键为位掩码时,如何反转dict?

Python 当按键为位掩码时,如何反转dict?,python,python-3.x,Python,Python 3.x,如何在编译期间将标记_反转为_标记: class FLAG(IntEnum): DEFAULT_ZERO = 0b0 L1 = 0b01 L2 = 0b10 RSU = 0b100 ESCALATED_COMMENTS = 0b1000 Flag_to_Marker = {L1: 'is_l1', L2: 'is_l2', RSU: 'is_rsu'} Marker_to_Flag = {v: k for k, v in Flag_to_

如何在编译期间将标记_反转为_标记:

class FLAG(IntEnum):
    DEFAULT_ZERO = 0b0
    L1 = 0b01
    L2 = 0b10
    RSU = 0b100
    ESCALATED_COMMENTS = 0b1000

    Flag_to_Marker = {L1: 'is_l1', L2: 'is_l2', RSU: 'is_rsu'}
    Marker_to_Flag = {v: k for k, v in Flag_to_Marker.items()}

    def marker(self, flag):
       return self.Flag_to_Marker[flag]

    def flag(self, marker):
       return self.Marker_to_Flag[marker]
但是,当我试图构造Marker_to_标志时,有以下例外:int参数必须是字符串、类似字节的对象或数字,而不是“dict”。如何解决这个问题

我想让标记_to_Flag={'is_l1':l1',is_l2':l2',is_rsu':rsu}

您的值必须是唯一的。 反转的_dict={y:x代表x,y在标志_到_Marker.items}
你想让Marker_to_Flag={v:k代表k,Flag_to_Marker.items}中的v代替吗?我试过了,但我得到的int参数必须是字符串、类似对象的字节或数字,而不是“dict”,可能的问题是在某个地方我们看不到你不能在IntEnum中定义任意数据。在类外定义词典。否则python会尝试将它们转换为整数。看一下文档-还有一些关于使用枚举作为标志的信息。我尝试过,但我得到int参数必须是字符串、类似字节的对象或数字,而不是“dict”。我认为错误是在其他地方生成的。我通过解释器运行了代码,字典颠倒了
Marker_to_Flag = {v: k for k, v in Flag_to_Marker.items()}