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

如何在Python中为字面量空列表添加正确的类型提示?

为始终返回空列表的函数添加精确类型提示

你尝试用Literal[[]]的写法无效,是因为Mypy不支持将空列表作为Literal的参数——Literal仅适用于字符串、数字、布尔值这类字面量单例,而每次返回的[]都是新的列表实例,不符合Literal的适用场景。以下是几种正确的实现方式:

方案1:使用list[NoReturn]

NoReturn类型表示不存在任何可能的值,因此list[NoReturn]语义上就是“永远无法包含元素的列表”,完全匹配你“始终为空”的需求,Mypy能正确识别并做类型检查(比如尝试往该列表添加元素会直接报错)。

from typing import NoReturn

def get_empty_list() -> list[NoReturn]:
    return []

方案2:自定义直观的类型别名

如果觉得list[NoReturn]的可读性不够,可以封装成更易懂的类型别名:

from typing import NoReturn

EmptyList = list[NoReturn]

def get_empty_list() -> EmptyList:
    return []

补充:如果允许返回不可变空容器

如果业务场景可以接受返回空元组(空元组是单例),可以用Literal[()]实现精确提示,但这仅适用于元组类型,不符合你要列表的需求,仅作参考:

from typing import Literal

def get_empty_tuple() -> Literal[()]:
    return ()

内容的提问来源于stack exchange,提问作者houseofleft

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:23:15