Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Enum的pythonic替换_Python_Enums - Fatal编程技术网

Enum的pythonic替换

Enum的pythonic替换,python,enums,Python,Enums,在我的python脚本中,我正在解析一个用户创建的文件,通常会出现一些错误,有些情况下,我会警告用户更清楚一些。在c中,我会有一个枚举,比如eAssignBad、eAssignMismatch、eAssignmentSignMix(signmixed with unsigned)。然后我将查找该值以打印错误或警告消息。我把warningMsg链接在一个地方,我喜欢名称的可读性,而不是文字值。用什么来代替这个 复制的:您可以尝试创建一组异常类(异常的所有子类,可能通过您自己的某个公共父类)。每一个

在我的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非常不同,用它们完成任务的最佳方式也不尽相同。重复:多重重复: