我创建了一个基于 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)
有什么我错过的东西还是检查系统的错误?
这部分代码是错误的:
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 不起作用,与你的代码不起作用的原因相同