我希望能够在方法调用成功时返回成功,但在失败时仍然能够返回 http 错误代码。
显然,唯一评估为 False 的数值是 0,因此以数字形式返回 http 代码会将所有这些评估为 true。
我的印象是,解决方案是返回一个对象,该对象仅对 200-2xx 值评估为真,并且还会转换为数字,以便人们可以比较它。
您是否知道有人采用了类似的方法? -- 我不喜欢在这种情况下引发异常的想法。
最佳答案
只返回两个结果,成功标志和http响应:
def some_function():
return success, http_response
并使用元组赋值:
success, response = some_function()
if success:
requests
module 的方法takes 是返回一个响应对象总是,然后让你选择根据响应代码引发异常:
response = requests.get(url)
response.raise_for_status()
哪里Response.raise_for_status()
method为您的 API 用户提供引发异常的选项。另一种选择是测试状态代码:
if not 200 <= response.status_code <= 299:
# problem status response
这两种方法的优点是它们明确。不要试图重载具有多种含义的返回值。如果 2xx 范围之外的 HTTP 响应是异常,则通过引发异常来处理它。
关于python - 如何返回关于成功的 bool 值并仍然在 python 中包含 http 状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637875/