首页 > 解决方案 > VS Code 中的 Pydantic 自动补全

问题描述

当我在 VS Code 中使用 pydantic 时,代码片段显示User(**data: Any). VS Code 有什么方法可以显示正确的文档吗?喜欢User(name: str, email: str)

在此处输入图像描述

标签: pythonpydantic

解决方案


到今天为止,对于 pydantic 的BaseModel类以及 pydantic 版本的@dataclass装饰器,问题仍然存在。

如果是BaseModel,请将以下代码添加到您的导入中:

from typing import TYPE_CHECKING
from pydantic import BaseModel


if TYPE_CHECKING:
    from dataclasses import dataclass as _basemodel_decorator
else:
    _basemodel_decorator = lambda x: x

然后,按如下方式装饰所有类:

@_basemodel_decorator
class MyClass(BaseModel):
    foo: int
    bar: str

或者,如果您使用 pydantic 的dataclass装饰器样板代码版本更简单:

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from dataclasses import dataclass
else:
    from pydantic.dataclasses import dataclass

然后照常继续:

@dataclass
class MyClass2:
    foo: int
    bar: str

结果: 构造函数参数的提示显示在 VS Code 中

更多信息:


推荐阅读