python - 如何提供自动完成提示,类似于 dataclass 和 sqlalchemy DeclarativeMeta?
问题描述
我想实现一个装饰器或基类,它获取声明的类中的字段列表,并向其中添加一个构造函数,该构造函数接受与这些字段对应的参数。类似于@dataclass
SQLAlchemy 的declarative_base
工作方式。
我的问题是 - 我如何让 PyCharm 和其他 IDE 识别并建议这个构造函数的自动完成。
例如,如果我编写以下代码:
@dataclass
class Foo:
bar: int
baz: str
Foo([caret is here])
然后按 command-P(参数信息),PyCharm 将显示一个带有bar:int, baz:str
. 此外,如果我在参数名称中出错,它会警告我。所以基本上,PyCharm 似乎“知道”@dataclass
装饰器添加了一个__init__
方法及其确切的签名。
我如何让它为我的装饰器做到这一点?