use*_*052 3 python enums enumeration type-conversion python-3.x
我目前正在使用以下类型的枚举:
class System(Enum):
FIRST = 1
SECOND = 2
Run Code Online (Sandbox Code Playgroud)
现在我希望能够执行以下操作:
a = System.FIRST
url = a.getSystemURL()
Run Code Online (Sandbox Code Playgroud)
FIRST其中枚举成员和的 urlSECOND当然是不同的。
我可以创建一个字典,其中枚举成员作为键,网址作为值,但这不能保证如果我稍后添加枚举成员,我会记得添加相应的字典条目。
是否有一种干净的方法来为枚举成员提供具有多个值的枚举?并命名这些不同的值?
像这样的东西:
class System(Enum):
Values = (Value, url, something)
FIRST = 1, 'https://www.example.com', 42
SECOND = 2, 'https://www.test.com', 13
Run Code Online (Sandbox Code Playgroud)
文档中有一个这样的例子。如果类定义了一个__init__方法,枚举值将作为参数传递给它。这意味着您可以像这样定义枚举:
class System(Enum):
FIRST = 1, 'https://www.example.com', 42
SECOND = 2, 'https://www.test.com', 13
def __init__(self, value, url, something):
self.value_ = value
self.url = url
self.something = something
Run Code Online (Sandbox Code Playgroud)
(请注意,这value是枚举保留的特殊属性,因此我命名该属性value_以避免名称冲突。)
您现在可以访问每个枚举成员的这些属性:
>>> System.FIRST.url
'https://www.example.com'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
965 次 |
| 最近记录: |