ksr*_*ini 15 python optional-parameters fastapi
我不明白FastAPI 中的可选查询参数。它与默认值为 的默认查询参数有何不同None
?
如上面链接中所述,下面的示例中的可选查询参数arg1
与 之间有什么区别?arg2
arg2
@app.get("/info/")
async def info(arg1: int = None, arg2: int | None = None):
return {"arg1": arg1, "arg2": arg2}
Run Code Online (Sandbox Code Playgroud)
Mat*_*ndh 22
FastAPI 参考手册对此进行了介绍,尽管只是一个小注释:
async def read_items(q: Optional[str] = None):
Run Code Online (Sandbox Code Playgroud)
FastAPI 会知道 q 的值不是必需的,因为默认值 = None。
Optional[str]
FastAPI 不使用Optional ,但它可以让您的编辑器为您提供更好的支持并检测错误。
(其他读者与3.10之前Optional[str]
相同)str | None
由于您的编辑器可能不知道 FastAPI 填充和使用参数的上下文,因此当参数未标记为 时,可能难以理解函数的实际签名Optional
。您可能关心也可能不关心这种区别。