Обратите внимание, что здесь я просто использую FastAPI в качестве ссылки, а это приложение служит совершенно другой цели.
Что я сделал:
Код: Выделить всё
models.pyКод: Выделить всё
from pydantic import BaseModel
class Mymodel(BaseModel):
name:str
age:int
Код: Выделить всё
main.pyКод: Выделить всё
def myfunc(m:Mymodel):
print(m)
print(m.name)
myfunc({"name":"abcd","age":3})
Я не понимаю, почему он так себя ведет, ведь тот же код будет работать и в FastAPI. Я что-то упускаю? Что мне следует сделать, чтобы это заработало.
Я ожидаю аргумент dict в функции, я хочу ввести подсказку с классом, унаследованным от pydantic BaseModel . Затем я хочу получить доступ к атрибутам этого класса.
Я не хочу этого делать:
Код: Выделить всё
def myfunc(m):
m = Mymodel(**m)
Подробнее здесь: https://stackoverflow.com/questions/710 ... pe-hinting
Мобильная версия