我有很多 Enum 和 EnumMeta 之类的
class MyEnumMeta(EnumMeta):
def from_string(cls, s: str) -> Enum:
return cls[s.upper()]
class A(IntEnum, metaclass=MyEnumMeta):
ONE = 1
TWO = 2
...
class B(Enum, metaclass=MyEnumMeta):
BB = auto()
...
...
如果我进行以下比较,
A.from_string('TWO') > A.ONE
我收到以下 mypy 消息: < ("A" and "Enum")
不支持的操作数类型如何解决类型不兼容的问题?我不想在每个类中定义 from_string 方法并指定相应的类作为返回值。
我在每个类中定义了方法,并指定相应的类作为返回值。
class A(IntEnum):
ONE = 1
TWO = 2
...
@classmethod
def from_string(cls, s: str) -> 'A':
return cls[s.upper()]
class B(Enum):
BB = auto()
@classmethod
def from_string(cls, s: str) -> 'B':
return cls[s.upper()]