我有这个项目,在我的基类和子类中实现了pydantic.BaseModel
:
from pydantic import BaseModel
from typing import List
from dataclasses import dataclass
@dataclass
class User(BaseModel):
id: int
@dataclass
class FavoriteCar(User):
car_names: List[str]
car = FavoriteCar(id=1, car_names=["Acura"])
print(f"{car.id} {car.car_names[0]}")
但是会出现这个错误:
self.__fields_set__.add(name)
E AttributeError: __fields_set__
有人能解释一下正在发生什么吗?我想使用pydantic的原因是因为我需要一种快速将Python对象转换为dict
(或JSON)并反向转换的方法。
FavoriteCar
的情况下重现这个问题,而且dataclass
和BaseModel
之间存在某种冲突。 - chepner