将字符串转换为 Enum 子类的相应实例的正确方法是什么?似乎 getattr(YourEnumType, str) 完成了这项工作,但我不确定它是否足够安全。 例如,假设我有一个枚举 class BuildType(Enum): debug = 200 release = 400 给定字符串 'debug' ,我怎样才能得到 BuildType.debug 作为结果? 原文由 Vladius 发布,翻译遵循...
class Color(Enum): RED = 1 GREEN = 2 BLUE = 3 @staticmethod def from_string(s): for color in Color: if color.name == s or str(color.value) == s: return color raise ValueError(f"Invalid color name or value: {s}") 3. 使用转换函数将字符串转换为枚举值 现在,可以使用Color.from...
enum_member = string_to_enum(input_str) print(enum_member) 在上述示例中,MyEnum是一个枚举类型,其中的成员由auto()函数自动生成。然后,string_to_enum函数接受一个字符串参数,并在枚举类型中查找匹配的成员。如果找到了匹配的成员,它将返回该成员;否则,它将引发ValueError。 请注意,这只是一个简单的实现,适...
在这段代码中,我们定义了一个处理订单状态的StrEnum,并通过update_order_status函数处理不同的状态。使用StrEnum使得代码更加易于维护,也减少了因拼写错误带来的问题。 关系图 为了更好地理解StrEnum与其它枚举类型的关系,我们可以使用ER图表示其关系: 这个关系图展示了StrEnum和常规Enum的继承关系,强化了理解。 总结 ...
class D(Enum): x = 1 y = 2 print(D.x) 现在打印的值是 D.x 相反,我希望打印枚举的值 1 可以做什么来实现这个功能? 我使用以下方法实现了访问 class D(Enum): x = 1 y = 2 def __str__(self): return '%s' % self.value 现在我可以做 ...
在某些情况下,我们可能需要将枚举成员转换为字符串形式。Python 中的枚举成员可以直接使用str()函数转换为字符串: print(str(Color.RED))# 输出:'RED' 1. 此外,我们还可以使用Enum类的name和value属性来获取枚举成员的名称和值: print(Color.RED.name)# 输出:'RED'print(Color.RED.value)# 输出:1 ...
1. 定义Strenum类型 我们可以通过继承Enum类并使用unique装饰器来定义Strenum类型,示例如下: ```python from enum import Enum, unique unique class Color(Enum): RED = 'red' GREEN = 'green' BLUE = 'blue' ``` 在上面的示例中,我们定义了一个名为Color的Strenum类型,其中包含了三个常量:RED、GREEN和...
StrEnum 的实现很简单 class StrEnum(str, Enum): pass auto() 如果希望可以自定义 auto 的起始值的话,你可以这样 >>> class CustomAuto(Enum): ... a = 3 ... b = auto() ... c = auto() ... >>> CustomAuto.a <CustomAuto.a: 3> >>> CustomAuto.b <CustomAuto.b: 4> >>> Custo...
在Python 中,枚举的定义是一个类,使用class语法来创建。通过继承enum模块中的不同基类以得到功能不同的枚举类。 enum模块提供了多种基类,有最基本的Enum,适用于数字的IntEnum,适用于字符串的StrEnum,适用于位运算的Flag,适用于数字并且需要位运算的IntFlag,混合型的ReprEnum。
字符串:str 列表:list 元组:tuple 字典:dic 4 for enumrate xrange range 上节内容回顾: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1、编程语言 2、python、C#、java 3、python:pypy,cpython,jpython.. ...