You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何复用字典条目避免重复编写接口响应配置?

你可以通过以下几种Python原生语法实现配置复用,无需额外依赖:

方法1:元组 + dict() 构造

先提前定义好各个通用响应的(状态码, 响应配置)元组:

# 预定义通用响应条目
RESP_401 = (status.HTTP_401_UNAUTHORIZED, {"model": UnauthorizedDetail, "description": "Unauthorized"})
RESP_402 = (status.HTTP_402_PAYMENT_REQUIRED, {"model": PaymentRequiredDetail, "description": "Payment Required"})
RESP_403 = (status.HTTP_403_FORBIDDEN, {"model": ForbiddenDetail, "description": "Forbidden"})

使用时直接把需要的元组传给dict()即可,写法和你期望的格式非常接近:

# 仅需401的场景
responses = dict([RESP_401])

# 需要同时添加401、402、403的场景
responses = dict([RESP_401, RESP_402, RESP_403])

方法2:字典解包语法

你也可以把单个响应定义为单键字典,用**解包合并:

# 预定义单键响应字典
RESP_401 = {status.HTTP_401_UNAUTHORIZED: {"model": UnauthorizedDetail, "description": "Unauthorized"}}
RESP_402 = {status.HTTP_402_PAYMENT_REQUIRED: {"model": PaymentRequiredDetail, "description": "Payment Required"}}

使用时直接在字典内解包即可,还支持同时添加自定义的特殊响应:

responses = {
    **RESP_401,
    **RESP_402,
    404: {"model": NotFoundDetail, "description": "Not Found"}
}

方法3:Python 3.9+ 字典合并运算符

如果你使用Python 3.9及以上版本,可以用更简洁的|合并运算符:

# 按需合并响应
responses = RESP_401 | RESP_402 | RESP_403
# 支持追加自定义响应
responses = RESP_401 | RESP_402 | {404: {"model": NotFoundDetail, "description": "Not Found"}}

你示例中responses={the401obj, the402obj}的写法是集合的初始化语法,而responses参数要求传入字典类型,因此无法直接使用,上述方案的写法已经和你期望的语法高度接近,完全可以实现一次定义、多处复用的需求。

内容的提问来源于stack exchange,提问作者SledgeHammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:27:03