Python枚举转换

本文介绍了Python中如何将值转换为枚举类型,通过直接使用枚举类的方法进行转换。同时提到,可以使用枚举的值来访问枚举成员,但这并非严格意义上的类型转换,且如果值不存在于枚举类中,程序会抛出错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看一个枚举类

from enum import Enum
class Color(Enum):
    YELLOW = 1
    GREEN = 2
    BLACK = 3
    RED = 4

如何把a=1转换成枚举类型,很简单,直接使用方法Color(a)就可以

from enum import Enum

class Color(Enum):
    YELLOW = 1
    GREEN = 2
    BLACK = 3
    RED = 4

a = 1
print(Color(a))
----------------------------------
输出:
Color.YELLOW

使用具体的值来访问枚举类型是一种方案,可以看做一个类型转换,但不是一个真正的类型转换。

注意:如果这个枚举类中不存在这个值是会报错的:

from enum import Enum

class Color(Enum):
    YELLOW = 1
    GREEN = 2
    BLACK = 3
    RED = 4

a = 6
print(Color(a))
----------------------
Traceback (most recent call last):
  File "E:/projects/python_learn/eleven/c7.py", line 16, in <module>
    print(Color(a))
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\enum.py", line 291, in __call__
    return cls.__new__(cls, value)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\enum.py", line 533, in __new__
    return cls._missing_(value)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\enum.py", line 546, in _missing_
    raise ValueError("%r is not a valid %s" % (value, cls.__name__))
ValueError: 6 is not a valid Color
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值