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

如何使用方括号调用Literal类型?(如Literal["Test1"])

关于Literal用方括号调用的疑问解答

先看这段代码:

Literal['r', 'rb', 'w', 'wb']

你疑惑为啥不是实例却能用方括号调用?其实这是Python类型系统里的特殊语法——Literal本质是个支持类级方括号索引的类型构造器,靠的是__class_getitem__方法。

普通类里的__getitem__是给实例用的,比如my_dict[key],但__class_getitem__是给类本身用的,Python 3.7之后引入的这个方法,专门让类能直接用类名[...]的语法,返回对应的泛型类型对象,用来做类型注解。

在typing模块里,Literal、List、Dict这些常用的类型工具,都是靠这个机制实现的。当你写Literal['r', ...]时,实际上是调用了Literal类的__class_getitem__方法,把传入的字面量参数处理成对应的字面量类型。

内容的提问来源于stack exchange,提问作者psaw.mora

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:12:03