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

Python函数用list[str]类型注解报'type' object is not subscriptable错如何解决

报错原因

你当前运行代码的Python版本低于3.9。Python从3.9版本开始才支持直接使用list[str]这种内置类型加下标泛型的标注语法,3.9之前的版本中list是原生类型对象,不支持[]下标操作传入泛型参数,因此会触发该类型错误。

解决方案

你可以根据自己的运行环境选择任意一种适配方案:

  • 方案一:升级Python版本到3.9及以上,原有代码不需要做任何修改即可正常运行。
  • 方案二:兼容3.9以下版本,使用typing模块的泛型类型。在代码头部添加导入语句:
    from typing import List
    
    再将函数头的类型标注修改为大写开头的泛型类型:
    def choose(self, options: List[str]) -> str:
    
  • 方案三:如果使用的是Python 3.7/3.8版本,可以直接在代码最顶部添加以下语句,不需要修改原类型标注:
    from __future__ import annotations
    
    该语句会让Python延后解析类型标注,运行阶段不会对标注语法做校验,也就不会触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:42:02