Pydantic 模型不可调用

问题描述 投票:0回答:1

我创建了一个基于 pydantic BaseModel 的自定义模型,如下所示:

from pydantic import BaseModel

class CustomModel(BaseModel):

    field1: int
    field2: str

当我定义这样的实例时

def validate_data(validator: CustomModel, custom_dict: dict) -> None:
    cm = validator(**custom_dict)

pyright 和 mypy 均报告错误 '“CustomModel”不可调用 [operator]'

如果我尝试直接编写模型 - 没有错误。

def validate_data(validator: CustomModel, custom_dict: dict) -> None:
    cm = CustomModel(**custom_dict)

有什么我错过的东西还是检查系统的错误?

python mypy pydantic pyright
1个回答
0
投票

这部分代码是错误的:

def validate_data(validator: CustomModel, custom_dict: dict) -> None:
    cm = validator(**custom_dict)

参数

validator
CustomModel
类的实例。我不知道你的完整实现,但我认为
validator(**custom_dict)
没有任何意义,就像这没有意义一样:

my_str = "Hello"
my_str(**custom_dict)

或以下(也是错误的)示例:

class MyClass:
    pass

if __name__ == "__main__":
    p = MyClass()
    p()

ofc 不起作用,与你的代码不起作用的原因相同

© www.soinside.com 2019 - 2024. All rights reserved.