我想知道如何定义枚举,就像下面我在JAVA和C中做的那样?有没有什么办法可以在Python中定义枚举?
C:
typedef enum status{
OFFLINE = 1,
ONLINE = 2,
LOGIN =3
} STATUS_T;
我想知道如何定义枚举,就像下面我在JAVA和C中做的那样?有没有什么办法可以在Python中定义枚举?
C:
typedef enum status{
OFFLINE = 1,
ONLINE = 2,
LOGIN =3
} STATUS_T;
OFFLINE = 1
ONLINE = 2
LOGIN = 3
如果你想STATUS_T.OFFLINE
的方式来访问,你可以在一个类包裹。 Python是一种动态类型语言,因此枚举的概念毫无意义,你所能做的就是拥有一些你可以设置的有意义的值。
显然,等效一直在3.4加入,看到How can I represent an 'Enum' in Python?
不是真的。
最常见的成语是在类级别定义一组常数:
class PhonyEnum(object):
OFFLINE = 1
ONLINE = 2
LOGIN = 3
这是给你用它们作为常量:
if result == PhonyEnum.ONLINE:
do_something
其他人也做同样的事情在模块级别而不是级别级别
感谢您的帮助。 – sureone
http://stackoverflow.com/questions/36932/how-can-i-represent-an-enum-in-python –