VS Code 中的 Pydantic 自动补全

Nic*_*sta 6 python pydantic

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

在此处输入图片说明

amk*_*a00 2

截至今天,这个问题仍然存在,无论是对于 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
Run Code Online (Sandbox Code Playgroud)

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

@_basemodel_decorator
class MyClass(BaseModel):
    foo: int
    bar: str
Run Code Online (Sandbox Code Playgroud)

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

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from dataclasses import dataclass
else:
    from pydantic.dataclasses import dataclass
Run Code Online (Sandbox Code Playgroud)

然后像往常一样继续:

@dataclass
class MyClass2:
    foo: int
    bar: str
Run Code Online (Sandbox Code Playgroud)

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

更多信息: