迫于老年人记忆力,请问 Python 里两个判断可以有一个返回值吗?

2021-11-02 04:26:10 +08:00
 szxczyc

#json 处理函数
def get_json_data(data,query_type,query_name):
    before_json_txt = data.text
    json_mid = json.loads(before_json_txt)
    result = json_mid['data']['result']
    if query_type == 'usage':
        for i in range(len(result)):#取最大值
            list = []
            list.append(round(float(result[i]['value'][1]),4))
        max_result = max(list)
        return max_result
    elif query_type == 'qps':#为 qps 时只保留整数且匹配 cmd 名
        for i in result:#取最大值
            if i["metric"]["cmd"]== query_name:
                max_result = round(i['value'][1])
        return max_result

请问我该怎么样才能让这个函数能根据usageqps的情况,并且返回值都为max_result呢?

1471 次点击
所在节点    问与答
3 条回复
lzdhlsc
2021-11-02 04:38:46 +08:00
如果没理解错的话,这段代码逻辑上好像没什么问题。只需要在 `if ... elif ...` 后面加一个 `else` 然后 `raise` exception 来处理 `query_type` 其他的情况就好了。
ladypxy
2021-11-02 08:29:35 +08:00
代码看上去没大问题
其实可以把 2 个 return 放到 if elif 外面
harryhao
2021-11-02 09:55:12 +08:00
在函数开头声明 max_result 变量,比如 max_result = None

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/812301

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX