在Java里很容易做到自定义有状态码和状态说明的枚举类例如:

  1. public enum MyStatus {
  2. NOT_FOUND(404, "Required resource is not found");
  3.  
  4. private final int code;
  5. private final String msg;
  6.  
  7. private MyStatus (int code, String msg) {
  8. this.code= code;
  9. this.msg = msg;
  10. }
  11.  
  12. public int getCode() {
  13. return this.code;
  14. }
  15.  
  16. public String getMsg() {
  17. return this.msg;
  18. }
  19.  
  20. public static String getMsgByCode(int code){
  21. for(MyStatus status: MyStatus.values()){
  22. if(status.getCode() == code){
  23. return status.message;
  24. }
  25. }
  26. return null;
  27. }
  28.  
  29. }

但是在Python里没找到类似的可以这样做的方法,于是就利用了字典,不知道对不对,所以贴出来供参考和改进:

  1. # -*- coding: utf-8 -*
  2. """状态码枚举类
  3.  
  4. author: Jill
  5.  
  6. usage:
  7. 结构为:错误枚举名-错误码code-错误说明message
  8. # 打印状态码信息
  9. code = Status.OK.get_code()
  10. print("code:", code)
  11. # 打印状态码说明信息
  12. msg = Status.OK.get_msg()
  13. print("msg:", msg)
  14. """
  15. from enum import Enum, unique
  16.  
  17. @unique
  18. class Status(Enum):
  19. OK = {"": "成功"}
  20. SUCCESS = {"": "成功"}
  21. FAIL = {"": "失败"}
  22. PARAM_IS_NULL = {"": "请求参数为空"}
  23. PARAM_ILLEGAL = {"": "请求参数非法"}
  24. JSON_PARSE_FAIL = {"": "JSON转换失败"}
  25. REPEATED_COMMIT = {"": "重复提交"}
  26. SQL_ERROR = {"": "数据库异常"}
  27. NOT_FOUND = {"": "无记录"}
  28. NETWORK_ERROR = {"": "网络异常"}
  29. UNKNOWN_ERROR = {"": "未知异常"}
  30.  
  31. def get_code(self):
  32. """
  33. 根据枚举名称取状态码code
  34. :return: 状态码code
  35. """
  36. return list(self.value.keys())[0]
  37.  
  38. def get_msg(self):
  39. """
  40. 根据枚举名称取状态说明message
  41. :return: 状态说明message
  42. """
  43. return list(self.value.values())[0]
  44.  
  45. if __name__ == '__main__':
  46. # 打印状态码信息
  47. code = Status.OK.get_code()
  48. print("code:", code)
  49. # 打印状态码说明信息
  50. msg = Status.OK.get_msg()
  51. print("msg:", msg)
  52.  
  53. print()
  54.  
  55. # 遍历枚举
  56. for status in Status:
  57. print(status.name, ":", status.value)

Python自定义状态码枚举类的更多相关文章

  1. 紫色飞猪的研发之旅--06go自定义状态码

    在实际开发中,需要前后端需要协商状态码,状态码用于后端返前端时使用.在一个团队中,定义的状态码讲道理应该是一致的,项目开始的起始阶段状态码应该是定义了个七七八八的,随着功能的叠加而不断增加.此系列将围 ...

  2. Spring HTTP状态码枚举值对照表

    使用Spring时总去查HTTP状态码对应的Spring枚举值的那篇代码,有点不方便,把代码拷贝出来统一替换格式做成了表格,放在这里,方便大家使用.(枚举类为HttpStatus) 枚举值 HTTP状 ...

  3. JAVA 自定义状态码

    返回信息类(ResponseInfo): public class ResponseInfo { public static final String Status = "status&qu ...

  4. python HTTP 状态码

    404 Not Found 在HTTP请求的路径无法匹配任何RequestHandler类相对应的模式时返回404(Not Found)响应码. 400 Bad Request 如果你调用了一个没有默 ...

  5. Http状态码枚举(摘自 Microsoft 程序集 System.dll)

    // 摘要: // 包含为 HTTP 定义的状态代码的值. public enum HttpStatusCode { // 摘要: // 等效于 HTTP 状态 100. System.Net.Htt ...

  6. Django API 自定义状态码

    class BaseResponse(object): def __init__(self): self.code = 1000 self.data = None self.error = None ...

  7. Django自定义状态码

    class BaseResponse: def __init__(self): self.code = 1000 self.data = None self.error = None @propert ...

  8. springboot自定义http反馈状态码

    最近在开发一些http server类型程序,通过spring boot构建一些web程序,这些web程序之间通过http进行数据访问.共享,如下图: 假设现在client发起一次保存数据的请求到se ...

  9. 利用python完成多个url状态码的检测

    import re import requests import json from threading import Thread,Lock from concurrent.futures impo ...

随机推荐

  1. QT 5.4.1 for Android Ubuntu QtWebView Demo

    QT 5.4.1 for Android Ubuntu QtWebView Demo 2015-5-15 目录 一.说明: 二.参考文章: 三.QtWebView Demo在哪里? 四.Qt Crea ...

  2. 20155117王震宇 2016-2017-2 《Java程序设计》第七周学习总结

    教材学习内容总结 时间度量 格林尼治标准时间(GMT):现在GMT已不作为标准时间使用. 世界时(UT):借助观测远方星体跨过子午线而得,受地球自转速度影响. 国际原子时(TAI):铯原子辐射振动幅度 ...

  3. HihoCoder - 1051:补提交卡

    时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序.100天过去了,小Ho查看自己的提交 ...

  4. Nginx访问限制模块limit_conn_zone 和limit_req_zone配置使用

    nginx可以通过limit_conn_zone 和limit_req_zone两个组件来对客户端访问目录和文件的访问频率和次数进行限制,另外还可以善用进行服务安全加固,两个模块都能够对客户端访问进行 ...

  5. MySQL Transaction--RC事务隔离级别下加锁测试

    ==============================================================================非索引列更新 在读提交的事务隔离级别下,在非 ...

  6. Oracle C#处理时间类型的Insert

    首先如果直接   parm.Value=DateTime.Now;   insert into table (TheTime)Value(@parm);   执行sql就会报错 ----------- ...

  7. SQL——ROW_NUMBER

    版权声明:欢迎转载,请注明出处 https://blog.csdn.net/suneqing/article/details/30250193 语法: ROW_NUMBER() OVER(PARTIT ...

  8. spring 核心思想:AOP 理解

    什么是AOP? AOP概念介绍 所谓AOP,即Aspect orientied program,就是面向方面(切面)的编程. 面向切面编程Aspect-Orlented-Programming,即AO ...

  9. EditorConfig知识点

    .editorconfig 该文件定义项目的编码规范,编辑器的行为会与.editorconfig 文件中定义的一致,并且其优先级比编辑器自身的设置要高,这在多人合作开发项目时十分有用而且必要. 在哪里 ...

  10. sklearn的画图

    from sklearn.metrics import roc_curve fpr, tpr, thresholds=roc_curve(y_train_5, y_scores) fpr, tpr & ...