2024-09-28 01:59:31 发布
网友
在python中执行基本Enum时:
Enum
from enum import Enum class Color(Enum): RED = 1 GREEN = 2 BLUE = 3 Color.RED.name # "RED"
name属性允许获取项目的字符串表示形式,该字符串表示形式正好是属性的strigified名称:RED=>;“红色”
name
是否有方法使用dict或factory更新此规则,以便例如:
Color.RED.name # "my color is RED"
在对Enum的源代码进行了一些挖掘之后,我发现name属性实际上是一个@DynamicClassAttribute,因此:
@DynamicClassAttribute
from types import DynamicClassAttribute from enum import Enum class Color(Enum): RED = 1 GREEN = 2 BLUE = 3 @DynamicClassAttribute def name(self): name = super(Color, self).name return f"my name is {name}" Color.RED.name # "my name is RED"
我会成功的
在对
Enum
的源代码进行了一些挖掘之后,我发现name
属性实际上是一个@DynamicClassAttribute
,因此:我会成功的
相关问题 更多 >
编程相关推荐