Python 的 enum.Enum该如何使用
时间: 2024-04-29 19:14:05 浏览: 163
python-3.9.9.tgz
Python 的 enum.Enum 可以用来定义枚举类型,也就是一组具有特定取值的常量。使用 enum.Enum 可以让代码更加清晰易懂,而且可以避免使用魔法数字。
以下是一些常见的使用方式:
1. 定义一个简单的枚举类型:
```python
import enum
class Color(enum.Enum):
RED = 1
GREEN = 2
BLUE = 3
```
2. 定义一个带有别名的枚举类型:
```python
import enum
class Color(enum.Enum):
RED = 1
GREEN = 2
BLUE = 3
RED_ALIAS = 1
```
3. 定义一个带有自定义值的枚举类型:
```python
import enum
class Color(enum.Enum):
RED = (1, "红色")
GREEN = (2, "绿色")
BLUE = (3, "蓝色")
def __init__(self, value, name):
self._value_ = value
self._name_ = name
@property
def value(self):
return self._value_
@property
def name(self):
return self._name_
```
4. 定义一个带有方法的枚举类型:
```python
import enum
class Color(enum.Enum):
RED = 1
GREEN = 2
BLUE = 3
def describe(self):
if self == Color.RED:
return "红色"
elif self == Color.GREEN:
return "绿色"
elif self == Color.BLUE:
return "蓝色"
```
使用枚举类型时,可以通过枚举值的名称或者值来访问枚举值:
```python
>>> Color.RED
<Color.RED: 1>
>>> Color(1)
<Color.RED: 1>
```
枚举值还可以通过属性来访问它们的值或名称:
```python
>>> Color.RED.value
1
>>> Color.RED.name
'RED'
```
枚举值也可以被迭代:
```python
>>> for color in Color:
... print(color)
...
Color.RED
Color.GREEN
Color.BLUE
```
枚举类型还可以用于比较:
```python
>>> Color.RED == Color.GREEN
False
>>> Color.RED < Color.GREEN
True
```
以上就是 Python 的 enum.Enum 的基本使用方法。
阅读全文