sor*_*bet 3 python enums python-3.x
我有一个enum.StrEnum, 我想为其元素添加属性。
例如:
class Fruit(enum.StrEnum):
APPLE = ("Apple", { "color": "red" })
BANANA = ("Banana", { "color": "yellow" })
>>> str(Fruit.APPLE)
"Apple"
>>> Fruit.APPLE.color
"red"
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?(我正在运行 Python 3.11.0。)
这个问题与这个问题不是重复的,后者询问的是原始问题enum.Enum。
答案与另一个问题大致相同(但太长,无法在此处发表评论):
from enum import StrEnum
class Fruit(StrEnum):
#
def __new__(cls, value, color):
member = str.__new__(cls, value)
member._value_ = value
member.color = color
return member
#
APPLE = "Apple", "red"
BANANA = "Banana", "yellow"
Run Code Online (Sandbox Code Playgroud)
如果您确实想使用 adict来表示属性,则可以,但您可能会面临忘记属性的风险,然后一个或多个成员将丢失它。
| 归档时间: |
|
| 查看次数: |
932 次 |
| 最近记录: |