Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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
Python 3.x python3-如何简化多个if/else语句_Python 3.x - Fatal编程技术网

Python 3.x python3-如何简化多个if/else语句

Python 3.x python3-如何简化多个if/else语句,python-3.x,Python 3.x,使用多个嵌套的if/else会使逻辑膨胀 如何简化以下代码 多个嵌套的if/else格式和逻辑非常难看 有点进步 payload_dict={“进程”:无,“状态”:无,“任务id”:任务id,“jenkinsJobName”:任务名称,“消息”:无} 统计=0 如果srv_结果==“失败”且结果: logging.info(“srv启动失败”) 响应_数据={“errorMsg”:“失败”,“errorCode”:“2”,“serviceList”:结果} elif srv_结果==“失败”

使用多个嵌套的if/else会使逻辑膨胀

如何简化以下代码

多个嵌套的if/else格式和逻辑非常难看


有点进步

payload_dict={“进程”:无,“状态”:无,“任务id”:任务id,“jenkinsJobName”:任务名称,“消息”:无}
统计=0
如果srv_结果==“失败”且结果:
logging.info(“srv启动失败”)
响应_数据={“errorMsg”:“失败”,“errorCode”:“2”,“serviceList”:结果}
elif srv_结果==“失败”:
logging.info(“srv启动失败”)
响应_数据={“errorMsg”:“失败”,“errorCode”:“2”,“serviceList”:“srv启动失败”}
elif结果:
logging.info(f“失败的srv:{result}”)
响应_数据={“errorMsg”:“失败”,“errorCode”:“1”,“serviceList”:结果}
其他:
logging.info(“部署成功”)
response_data={“errorMsg”:“Suces”,“errorCode”:“0”,“serviceList”:result}
stat=1
_msg=json.dumps(响应数据,确保ascii=False)
有效负载目录更新(进程=1,状态=stat,消息=msg)
info(f“请求:{payload_dict}”)

将其折射到处理结果的方法中。这里的问题不是嵌套的条件,而是重复的代码。
payload_dict = {"process": None, "status": None, "taskId": task_id,
                "jenkinsJobName": job_name, "msg": None}

if srv_result == "failed":
    if result:
        logging.info("srv start failed")
        response_data = {"errorMsg": "failed", "errorCode": "2", "serviceList": result}
        _msg = json.dumps(response_data, ensure_ascii=False)
        payload_dict.update(process=1, status=0, msg=_msg)
        logging.info(f"Requests:{payload_dict}")
    else:
        logging.info("srv start failed")
        response_data = {"errorMsg": "failed", "errorCode": "2",
                         "serviceList": "srv start failed"}
        _msg = json.dumps(response_data, ensure_ascii=False)
        payload_dict.update(process=1, status=0, msg=_msg)
        logging.info(f"Requests:{payload_dict}")
else:
    if result:
        logging.info(f"failed srv:{result}")
        response_data = {"errorMsg": "failed", "errorCode": "1", "serviceList": result}
        _msg = json.dumps(response_data, ensure_ascii=False)
        payload_dict.update(process=1, status=0, msg=_msg)
        logging.info(f"Requests:{payload_dict}")
    else:
        logging.info("deploy success.")
        response_data = {"errorMsg": "sucess", "errorCode": "0", "serviceList": result}
        _msg = json.dumps(response_data, ensure_ascii=False)
        payload_dict.update(process=1, status=1, msg=_msg)
        logging.info(f"Requests:{payload_dict}")