gpt4 book ai didi

python - 使用 MyPy 的项目中的 FastAPI/Pydantic

转载 作者:行者123 更新时间:2023-11-30 21:55:43 28 4
gpt4 key购买 nike

我目前正在学习 fastAPI 教程,我的环境设置为 black、flake8、bandit 和 mypy。本教程中的所有内容都工作正常,但我一直需要 # type:ignore things 以使 mypy 合作。

class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None


@app.post("/items/")
async def create_items(item: Item) -> Item:
return item

Mypy 然后错误:

 ❯ mypy main.py                                                                                                                                                                                                 [14:34:08]
main.py:9: error: Incompatible types in assignment (expression has type "None", variable has type "str")
main.py:11: error: Incompatible types in assignment (expression has type "None", variable has type "float")

我可以 # type:ignore,但随后我在编辑器中丢失了类型提示和验证。我是否遗漏了一些明显的东西,或者我应该为 FastAPI 项目禁用 mypy ?

最佳答案

您可以使用可选:

from typing import Optional

class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None

这告诉 mypy 该值应该是该类型,但 None 也是可以接受的。

关于python - 使用 MyPy 的项目中的 FastAPI/Pydantic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56244496/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com