我有这样的代码
def find_user(user_id):
    if not users.lookup(user_id):
        return jsonify(success=False, reason="not found")
    else:
        return users.lookup(user_id)
@app.route(...)
def view1(...):
    user = find_user(...)
    if user:
       do_something
    return jsonify(success=True, ....)
关键是我有一个辅助函数,如果condition满足我想立即返回响应。在这种情况下,如果找不到用户,我想返回一个请求,说明请求失败并给出原因。
问题是因为该函数还可以返回一些其他值(比如用户对象)。我不会从请求中返回。相反,因为我们得到了一个分配,我们将继续使用其余的代码路径。
我可能可以进行类型检查,但这很难看!
理想情况下,这是更长的代码
def view(...)
    user = users.lookup(user_id)
    if not user:
       return jsonify(success=False....)
    # if user is true, do something else
辅助函数的重点find_user是提取通用代码,然后在其他一些类似的 api 中重用。
有没有办法直接在我当前的代码中返回响应?看起来这是一个死胡同......除非我改变代码的编写方式(如何返回值......)