PyCharm中Type[dataclass]类型提示失效问题咨询
问题:返回Type[数据类]的函数类型提示在PyCharm中失效?
以下是复现代码:
from dataclasses import dataclass from typing import Type @dataclass class FooData: bar: int baz: str FooData(1, 's') # 正常工作 def through() -> Type[FooData]: return FooData DataClass = through() DataClass(1, 's') # 出现警告:unexpected arguments
返回值标注为Type[dataclass]的函数或方法,其类型提示无法正常工作。请问这是PyCharm的bug,还是我操作有误?
PyCharm版本:PyCharm 2021.3.3(专业版)
这不是你的操作错误,属于PyCharm旧版本的类型推断局限。在2021.3.3版本中,PyCharm的类型检查器无法正确识别通过函数返回赋值得到的数据类的构造参数,因此会误报参数异常。
可以通过两种方式解决:
- 升级PyCharm到2022.2及以后的版本,新版本对这类场景的类型推断逻辑做了优化,能正确识别数据类构造器的参数提示。
- 临时方案:给赋值后的变量添加显式类型标注,比如:
这样PyCharm就能正确识别参数,不再出现错误警告。DataClass: Type[FooData] = through()
内容的提问来源于stack exchange,提问作者mode
相关产品推荐
相关产品推荐

