Support unknown values in Python Enums 在Python Enums中支持未知值
- 论坛
- Support unknown values in Python Enums 在Python Enums中支持未知值
14 浏览
Support unknown values in Python Enums 在Python Enums中支持未知值
我希望扩展Python枚举以支持未定义的值。
我的使用情况是:我想从枚举中获益(例如,能够使用可读的名称引用/比较已知条目),但我也希望它支持未知值。如果值后面没有名称,则str应该简单地打印值的str表示,比较应该失败。
让我给您一个简短的示例,说明我想要的是什么:
from enum import Enum class Foo(Enum): A = 1 B = 2 C = 3 def __str__(self): return self.name print(Foo(1)) # 打印 'A' print(Foo(2)) # 打印 'B' print(Foo(3)) # 打印 'C' print(Foo(1) == Foo.A) # 打印 'true' print(Foo(4)) # 我期望输出 '4' print(Foo(123)) # 我期望输出 '123' print(Foo(123) == Foo.A) # 我期望输出 False
当然,最后几行会失败。
是否有一种方法可以扩展枚举,或者也许还有其他简单的Pythonic方式?(请不要使用第三方库。)