You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 07:18:06