【问题标题】:Is there any way to define the enum in python? [duplicate]有没有办法在python中定义枚举? [复制]
【发布时间】:2013-05-31 11:28:32
【问题描述】:

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

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

【问题讨论】:

标签: python


【解决方案1】:
OFFLINE = 1
ONLINE = 2
LOGIN = 3

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

显然,在 3.4 中添加了一个等效项,请参阅How can I represent an 'Enum' in Python?

【讨论】:

    【解决方案2】:

    不是真的。

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

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

    您可以将它们用作常量:

    if result == PhonyEnum.ONLINE: 
       do_something
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-14
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      相关资源
      最近更新 更多