Enum的pythonic替换
在我的python脚本中,我正在解析一个用户创建的文件,通常会出现一些错误,有些情况下,我会警告用户更清楚一些。在c中,我会有一个枚举,比如eAssignBad、eAssignMismatch、eAssignmentSignMix(signmixed with unsigned)。然后我将查找该值以打印错误或警告消息。我把warningMsg链接在一个地方,我喜欢名称的可读性,而不是文字值。用什么来代替这个Enum的pythonic替换,python,enums,Python,Enums,在我的python脚本中,我正在解析一个用户创建的文件,通常会出现一些错误,有些情况下,我会警告用户更清楚一些。在c中,我会有一个枚举,比如eAssignBad、eAssignMismatch、eAssignmentSignMix(signmixed with unsigned)。然后我将查找该值以打印错误或警告消息。我把warningMsg链接在一个地方,我喜欢名称的可读性,而不是文字值。用什么来代替这个 复制的:您可以尝试创建一组异常类(异常的所有子类,可能通过您自己的某个公共父类)。每一个
复制的:您可以尝试创建一组异常类(异常的所有子类,可能通过您自己的某个公共父类)。每一个都会有一条适合这种情况的错误消息文本…以下是我迄今为止发现的最好的枚举实现之一: 但是,我敢问,你需要一个枚举吗 您可以用一个简单的dict记录错误消息,用一些整数常量记录错误号
eAssignBad = 0
eAssignMismatch = 1
eAssignmentSignMix = 2
eAssignErrors = {
eAssignBad: 'Bad assignment',
eAssignMismatch: 'Mismatched thingy',
eAssignmentSignMix: 'Bad sign mixing'
}
您可能只需要一个dict,但如果不将整个程序/函数视为伪代码,则很难判断。C和Python非常不同,用它们完成任务的最佳方式也不尽相同。重复:多重重复: