【发布时间】:2022-01-20 07:52:23
【问题描述】:
我想用 Python 编写枚举类。
我的问题是我希望不同的枚举输入具有相同的值。例如:
class Animal(Enum):
Cat = ['Perian cat', 'Bengal cat', 'Siamese cat']
那么我可以这样使用它:
some_animal = Animal('Persian cat')
print(some_animal)
>> Animal.Cat
我认为这是不可能的,但只是为了确定我想在这里提出这个要求。
更新
我试过这个解决方案:
class _Cat(Enum):
BENGAL = 'Bengal cat'
PERSIAN = 'Persian cat'
SIAMESE = 'Siamese cat'
class Animal(Enum):
Cat = _Cat
从这个意义上说,我可以访问 Cat 类的值,但我想要实现的是这样的:
some_animal = Animal('Persian cat')
print(some_animal)
>> Animal.Cat.PERSIAN
谢谢。
【问题讨论】:
-
您想要的可能是一个存储给定名称和相关枚举值(都作为字段)的类。不仅仅是枚举。枚举基本上是一堆单例——即使你要分配一些属性——例如
Animal.Cat.something = 'test',然后Animal('Bengal cat').something也将被设置。因为所有 Animal.Cat 都是同一个对象(is,不仅仅是==) -
感谢您的评论。你能写一个简短的例子吗?我想我没有完全理解。
-
我的意思是:创建一个包含两件事的类:你的完整描述和你的枚举
标签: python python-3.x class enums