Python自定义状态码枚举类
在Java里很容易做到自定义有状态码和状态说明的枚举类例如:
public enum MyStatus {
  NOT_FOUND(404, "Required resource is not found");
  private final int code;
  private final String msg;
  private MyStatus (int code, String msg) {
    this.code= code;
    this.msg = msg;
  }
  public int getCode() {
    return this.code;
  }
  public String getMsg() {
    return this.msg;
  }
   public static String getMsgByCode(int code){
        for(MyStatus status: MyStatus.values()){
            if(status.getCode() == code){
                return status.message;
            }
        }
        return null;
    }
}
但是在Python里没找到类似的可以这样做的方法,于是就利用了字典,不知道对不对,所以贴出来供参考和改进:
# -*- coding: utf-8 -*
"""状态码枚举类 author: Jill usage:
结构为:错误枚举名-错误码code-错误说明message
# 打印状态码信息
code = Status.OK.get_code()
print("code:", code)
# 打印状态码说明信息
msg = Status.OK.get_msg()
print("msg:", msg)
"""
from enum import Enum, unique @unique
class Status(Enum):
OK = {"": "成功"}
SUCCESS = {"": "成功"}
FAIL = {"": "失败"}
PARAM_IS_NULL = {"": "请求参数为空"}
PARAM_ILLEGAL = {"": "请求参数非法"}
JSON_PARSE_FAIL = {"": "JSON转换失败"}
REPEATED_COMMIT = {"": "重复提交"}
SQL_ERROR = {"": "数据库异常"}
NOT_FOUND = {"": "无记录"}
NETWORK_ERROR = {"": "网络异常"}
UNKNOWN_ERROR = {"": "未知异常"} def get_code(self):
"""
根据枚举名称取状态码code
:return: 状态码code
"""
return list(self.value.keys())[0] def get_msg(self):
"""
根据枚举名称取状态说明message
:return: 状态说明message
"""
return list(self.value.values())[0] if __name__ == '__main__':
# 打印状态码信息
code = Status.OK.get_code()
print("code:", code)
# 打印状态码说明信息
msg = Status.OK.get_msg()
print("msg:", msg) print() # 遍历枚举
for status in Status:
print(status.name, ":", status.value)
Python自定义状态码枚举类的更多相关文章
- 紫色飞猪的研发之旅--06go自定义状态码
		
在实际开发中,需要前后端需要协商状态码,状态码用于后端返前端时使用.在一个团队中,定义的状态码讲道理应该是一致的,项目开始的起始阶段状态码应该是定义了个七七八八的,随着功能的叠加而不断增加.此系列将围 ...
 - Spring HTTP状态码枚举值对照表
		
使用Spring时总去查HTTP状态码对应的Spring枚举值的那篇代码,有点不方便,把代码拷贝出来统一替换格式做成了表格,放在这里,方便大家使用.(枚举类为HttpStatus) 枚举值 HTTP状 ...
 - JAVA 自定义状态码
		
返回信息类(ResponseInfo): public class ResponseInfo { public static final String Status = "status&qu ...
 - python HTTP 状态码
		
404 Not Found 在HTTP请求的路径无法匹配任何RequestHandler类相对应的模式时返回404(Not Found)响应码. 400 Bad Request 如果你调用了一个没有默 ...
 - Http状态码枚举(摘自 Microsoft 程序集 System.dll)
		
// 摘要: // 包含为 HTTP 定义的状态代码的值. public enum HttpStatusCode { // 摘要: // 等效于 HTTP 状态 100. System.Net.Htt ...
 - Django API 自定义状态码
		
class BaseResponse(object): def __init__(self): self.code = 1000 self.data = None self.error = None ...
 - Django自定义状态码
		
class BaseResponse: def __init__(self): self.code = 1000 self.data = None self.error = None @propert ...
 - springboot自定义http反馈状态码
		
最近在开发一些http server类型程序,通过spring boot构建一些web程序,这些web程序之间通过http进行数据访问.共享,如下图: 假设现在client发起一次保存数据的请求到se ...
 - 利用python完成多个url状态码的检测
		
import re import requests import json from threading import Thread,Lock from concurrent.futures impo ...
 
随机推荐
- mac 搭建Vue开发环境
			
1: 使用的各个工具的版本为: Homebrew 1node.js npm webpack Vue 2: 安装brew 打开终端运行一下命令 /usr/bin/ruby -e "$(cur ...
 - Qemu编译qemu-system-arm
			
/********************************************************************************* * Qemu编译qemu-syst ...
 - Windows-CreateProcess-fdwCreate
			
DEBUG_PROCESS: DEBUG_ONLY_THIS_PROCESS: CREATE_SUSPENDED: DETACHED_PROCESS: CREATE_NEW_CONSOLE: CREA ...
 - unknown error: call function result missing 'value'
			
好好的脚本全部报错,遇到这种现在看一下自己Chrome浏览的版本号 然后去chromedriver官网上下载最新驱动文件 https://sites.google.com/a/chromium.org ...
 - 谨慎使用 FileInfo.Exists 实例方法,而是使用 File.Exists 静态方法替代
			
如果你在代码中使用了 FileInfo.Exists 实例方法来判断一个文件是否存在,也许会发现此方法可能错误地判断来一个文件是否真的存在.这是一个坑. 本文将介绍坑的原因,并提供填坑的办法. 本文内 ...
 - socket套接字和驱动绑定分析
			
1. socket()系统调用 socket系统调用是哪个:socket()有3个参数,因此搜索SYSCALL_DEFINE3,然后在检索socket即可. SYSCALL_DEFINE3(socke ...
 - .gitignore忽略git版本库中的文件(夹)
			
# 忽略*.o和*.a文件 *.[oa] # 忽略*.b和*.B文件,my.b除外 *.[bB] !my.b # 忽略dbg文件和dbg目录 dbg # 只忽略dbg目录,不忽略dbg文件 dbg/ ...
 - JVM(上)
			
堆.栈 JVM内存≍Heap(堆内存)+PermGen(方法区)+Thrend(栈)Heap(堆内存)=Young(年轻代)+Old(老年代),官方文档建议整个年轻代占整个堆内存的3/8,老年代占整个 ...
 - nyoj   单调递增最长子序列
			
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 ...
 - Javascript 在严格模式下不允许删除变量或对象
			
如下代码,运行后在浏览器中会报错. <script> "use strict"; var x = 3.14; delete x; </script>