枚举的pythonic替换[重复]
Posted
技术标签:
【中文标题】枚举的pythonic替换[重复]【英文标题】:pythonic replacement for enums [duplicate] 【发布时间】:2010-10-06 05:23:11 【问题描述】:在我的 python 脚本中,我正在解析用户创建的文件,通常会出现一些错误,并且在某些情况下我会警告用户更清楚。在 c 中,我会有一个像 eAssignBad、eAssignMismatch、eAssignmentSignMix 之类的枚举(符号与无符号混合)。然后我会查找该值以打印错误或警告消息。我将warningMsg链接在一个地方,我喜欢名称的可读性而不是文字值。这是什么pythonic替代品?
重复:How can I represent an 'Enum' in Python?
【问题讨论】:
您可能只想要一个字典,但如果不将整个程序/函数视为伪代码,就很难判断。 C 和 Python 非常 不同,在它们中完成任务的最佳方式也不相同。 复制:***.com/questions/36932/… 多重复制:***.com/search?q=python+enum 【参考方案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 的所有子类,也许通过您自己的一些公共父类)。每个人都会有一个适合该场合的错误消息文本......
【讨论】:
以上是关于枚举的pythonic替换[重复]的主要内容,如果未能解决你的问题,请参考以下文章
用模拟函数替换真实返回值和函数实现的 Pythonic 方式