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

类型提示中使用Ellipsis遇Pylance报错,求Pythonic解决方案

类型提示中使用Ellipsis时Pylance报错的解决方法

我尝试在方法返回类型提示中用list[list[int], ...]表示由任意数量list[int]组成的列表,代码如下:

def func_test(
    self,
    top_k: int,
    tensor_1: torch.Tensor,
    tensor_2: torch.Tensor,
) -> list[list[int], ...]:

但VS Code中的Pylance报错:

"..." not allowed in this context

虽然mypy支持这种写法,但Pylance对该语法的兼容性和mypy存在差异,下面是几种可行的解决方式:

  • 改用标准类型提示写法:直接写成list[list[int]]即可。PEP 484标准中,list[T]本身就代表任意长度、元素全为T的列表,和list[T, ...]语义完全一致,这种写法能被所有主流类型检查器(包括Pylance、mypy)兼容,是最推荐的方案。
  • 使用typing.List兼容写法:如果一定要显式写出Ellipsis,可以导入typing.List,写成List[List[int], ...],部分类型检查器能识别这种写法,但依然不如标准写法通用。
  • 不推荐使用变量Ellipsis的临时方案:你提到的用变量Ellipsis替代的写法不符合Python类型提示规范,会降低代码可读性,还可能被其他静态检查工具报错,不建议采用。

内容的提问来源于stack exchange,提问作者An old man in the sea.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:04:55