Pydantic AttributeError:''对象没有属性'__fields_set__'

Jac*_*ang 7 python inheritance class pydantic

from pydantic import BaseModel

class A(BaseModel):
    date = ''

class B(A):
    person: float

    def __init__(self):
        self.person = 0
    
B()
Run Code Online (Sandbox Code Playgroud)

尝试启动类 B 但引发错误 AttributeError: 'B' object has no attribute ' fields_set ',为什么呢?

use*_*462 7

这是因为你覆盖了__init__并且不在super那里调用,所以 Pydantic 无法通过设置正确的字段来发挥它的魔力。

使用 pydantic ,您很少需要实现__init__大多数情况都可以通过不同的方式解决:

from pydantic import BaseModel

class A(BaseModel):
    date = ""

class B(A):
    person: float = 0

B()
Run Code Online (Sandbox Code Playgroud)