Pylance对带无默认值额外参数的类方法返回值错误提示为Any类型的问题求助
Pylance对带无默认值额外参数的类方法返回值错误提示为Any类型的问题求助
大家好,我碰到了一个Pylance类型提示的诡异问题,用实际代码例子来解释最直观:
class Bar: pass class Foo: @classmethod def class_foobar(cls) -> Bar: return Bar() @classmethod def class_foobar_param(cls, param: str) -> Bar: return Bar() bar = Foo.class_foobar() bar_param = Foo.class_foobar_param(param="")
现在我把鼠标悬停在bar和bar_param上时,本来预期Pylance会提示它们的类型都是Bar,但实际bar_param的类型被识别成了Any。
不过如果我给参数加上默认值,这个问题就消失了:
class Foo: @classmethod def class_foobar_param_default(cls, param: str = "") -> Bar: return Bar()
有没有大佬知道这到底是怎么回事呀?
根据评论区的建议,附上我的环境信息:
- Mac Ventura 13.6
- VSCode v1.84.2
- Pylance v2023.11.10(通过VSCode扩展安装)
- Python v3.11.4
备注:内容来源于stack exchange,提问作者leoschet
相关产品推荐
相关产品推荐

