【问题标题】:pythonic replacement for enums [duplicate]枚举的pythonic替换[重复]
【发布时间】:2010-10-06 05:23:11
【问题描述】:

在我的 python 脚本中,我正在解析用户创建的文件,通常会出现一些错误,并且在某些情况下我会警告用户更清楚。在 c 中,我会有一个像 eAssignBad、eAssignMismatch、eAssignmentSignMix 之类的枚举(符号与无符号混合)。然后我会查找该值以打印错误或警告消息。我将warningMsg链接在一个地方,我喜欢名称的可读性而不是文字值。这是什么pythonic替代品?

重复How can I represent an 'Enum' in Python?

【问题讨论】:

标签: python enums


【解决方案1】:

这是迄今为止我发现的最好的枚举实现之一: http://code.activestate.com/recipes/413486/

但是,我敢问,你需要枚举吗?

你可以有一个简单的 dict 和你的错误信息和一些整数常量和你的错误号。

eAssignBad = 0
eAssignMismatch = 1
eAssignmentSignMix = 2

eAssignErrors = {
    eAssignBad: 'Bad assignment',
    eAssignMismatch: 'Mismatched thingy',
    eAssignmentSignMix: 'Bad sign mixing'
}

【讨论】:

    【解决方案2】:

    您可以尝试创建一堆异常类(Exception 的所有子类,也许通过您自己的一些公共父类)。每个人都会有一个适合该场合的错误消息文本......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 2014-01-01
      • 1970-01-01
      • 2012-08-31
      • 2016-03-05
      相关资源
      最近更新 更多