常量分类及类别判定需求:针对自定义错误码类常量
常量分类与类别判定实现方案
首先咱们把现有常量按给定的分类整理清楚,方便后续管理和判定:
1. 错误类(errors)
这类常量对应基础的数值错误,代码定义如下:
# errors ERR_ROW_NUM = 1 ERR_COL_NUM = 2 ERR_NUM = 3
2. 输入错误类(incorrect)
这类对应具体位置(行/列/框)的输入错误,定义:
# incorrect INCOR_ROW = 4 INCOR_COL = 5 INCOR_BOX = 6
3. 警告类(warning)
这类是非致命的警告提示,定义:
# warning WAR_HEAT = 7 WAR_PROCESS = 8
错误信息关联字典
你已经定义好的关联字典整理成规范代码块如下:
MSG = { ERR_ROW_NUM: "incorrect number of row", ERR_COL_NUM: "incorrect number of column", ERR_NUM: "an incorrect number in ..." }
类别判定功能实现
接下来写个实用的Python函数,快速判定常量所属类别,还能顺便取出对应的错误信息(如果有的话):
# 把每个类别的常量归类到集合里,集合查询效率更高 ERRORS = {ERR_ROW_NUM, ERR_COL_NUM, ERR_NUM} INCORRECTS = {INCOR_ROW, INCOR_COL, INCOR_BOX} WARNINGS = {WAR_HEAT, WAR_PROCESS} def classify_constant(constant): """判定常量所属类别,返回类别名称和对应错误信息""" if constant in ERRORS: category = "errors" msg = MSG.get(constant, "No message available") elif constant in INCORRECTS: category = "incorrect" msg = MSG.get(constant, "No message available") elif constant in WARNINGS: category = "warning" msg = MSG.get(constant, "No message available") else: category = "unknown" msg = "Unknown constant" return {"category": category, "message": msg} # 测试示例 print(classify_constant(ERR_ROW_NUM)) # 输出: {'category': 'errors', 'message': 'incorrect number of row'} print(classify_constant(INCOR_BOX)) # 输出: {'category': 'incorrect', 'message': 'No message available'} print(classify_constant(WAR_HEAT)) # 输出: {'category': 'warning', 'message': 'No message available'}
功能说明
- 分类集合:用集合存储每个类别的常量,成员查询是O(1)复杂度,比列表高效很多;
- 判定逻辑:通过分支判断常量所属集合,同时从
MSG字典提取对应信息,无匹配时返回默认提示; - 扩展性:后续新增常量或类别,只需往对应集合添加元素、补充
MSG字典即可,非常灵活。
内容的提问来源于stack exchange,提问作者Programer Beginner
相关产品推荐
相关产品推荐

