pythonic replacement for enums
本问题已经有最佳答案,请猛点这里访问。
在我的python脚本中,我分析的是一个用户创建的文件,通常会有一些错误,有些情况下我警告用户要更清楚。在C中,我将拥有一个类似eassignbad、eassignmismatch、eassignmentsignmix(sign与unsigned混合)的枚举。然后我会查找该值以打印错误或警告消息。我把warningmsg链接到一个地方,我喜欢名称的可读性,而不是文字值。用什么来代替这个?
的副本:如何在Python中表示"枚举"?
下面是迄今为止我发现的最好的枚举实现之一:http://code.activestate.com/recipes/413486/
但是,我敢问,你需要枚举吗?
您可以用一个简单的dict来记录错误消息,也可以用一些整数常量来记录错误号。
1 2 3 4 5 6 7 8 9 | eAssignBad = 0 eAssignMismatch = 1 eAssignmentSignMix = 2 eAssignErrors = { eAssignBad: 'Bad assignment', eAssignMismatch: 'Mismatched thingy', eAssignmentSignMix: 'Bad sign mixing' } |
您可以尝试创建一组异常类(异常的所有子类,可能通过您自己的某个公共父类)。每一个都会有一个适合这种情况的错误消息文本…