有没有办法在python中定义枚举?

时间:2013-06-04 22:21:49

标签: python

我想知道如何定义枚举就像我在JAVA和C中所做的一样?

C:
typedef enum status{
OFFLINE = 1,
ONLINE = 2,
LOGIN =3
} STATUS_T;

2 个答案:

答案 0 :(得分:1)

OFFLINE = 1
ONLINE = 2
LOGIN = 3

如果您想要STATUS_T.OFFLINE访问方式,可以将其包装在一个类中。 Python是一种动态类型语言,因此枚举的概念毫无意义,你可以做的就是有一系列有意义的值,你可以设置一些东西。

显然,3.4中添加了等效内容,请参阅How can I represent an 'Enum' in Python?

答案 1 :(得分:1)

不是真的。

最常见的习惯用法是在类级别定义一组常量:

class PhonyEnum(object):
     OFFLINE = 1
     ONLINE = 2
     LOGIN = 3

由您决定使用它们作为常量:

if result == PhonyEnum.ONLINE: 
   do_something

其他人也在模块级别而不是类级别做同样的事情