在pydantic中赋值时出现AttributeError



我在不同的文件中有两个不同的pydantic BaseModel类。在X.py中,我有:

from pydantic import BaseModel
class somefirst(BaseModel):
flag: bool = False

在Y.py我有:

from pydantic import BaseModel
class somesecond(BaseModel):
flagvalue: bool = False

我想在Y.py中做的是:

from pydantic import BaseModel
from X import somefirst
class somesecond(BaseModel):
flagvalue: somefirst.flag

我得到AttributeError说类型obj somefirst没有属性"标志">

有谁能帮我一下吗?

属性在创建类的对象时初始化。所以你可以这样做:

from pydantic import BaseModel

class somefirst(BaseModel):
flag: bool = False

class somesecond(BaseModel):
flagvalue: somefirst().flag

但是真的需要在somesecond中更改属性的名称吗?如果您想通过另一个模型的属性来扩展一个模型,我建议使用继承:

from pydantic import BaseModel

class SomeFirst(BaseModel):
flag: bool = False

class SomeSecond(SomeFirst):
pass

second = SomeSecond()
print(second.flag)  # output: False