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

Python参数类型标注:何时使用Dict/List与dict/list?

Python参数类型标注:dict/list 与 Dict/List的使用说明

核心规则

  • Python 3.9及以上版本:优先用小写的dict/list,原生支持泛型标注(比如dict[str, list])
  • Python 3.8及以下版本:必须用大写的Dict/List(需要从typing模块导入),因为原生类型不支持泛型语法

详细说明

1. 版本差异是关键

  • 在Python 3.9之前,dict、list这类内置类型不能直接加泛型参数(写dict[list]会直接报错),必须用typing模块提供的大写类型别名,使用前得先导入:
    from typing import Dict, List
    
    def execute_signals(self, parameter1: Dict[List], parameter2: Dict) -> List[Dict]:
        # 3.8及以下版本的正确写法
        pass
    
  • 从Python 3.9开始,PEP 585标准允许原生类型直接支持泛型,这时可以直接用小写的dict/list写标注,不用再导入typing模块:
    def execute_signals(self, parameter1: dict[list], parameter2: dict) -> list[dict]:
        # 3.9+版本的推荐写法
        pass
    

2. 混合写法不推荐

你给出的第三种混合写法(比如dict[List])属于风格不统一,既不符合旧版本规范,也没必要在新版本里这么写,建议统一用一种风格,要么全小写原生类型,要么全用typing模块的大写类型。

3. 兼容多版本的小技巧

如果你的代码需要兼容多个Python版本,可以:

  • 一直使用typing模块的大写类型(比如Dict/List),同时导入from __future__ import annotations延迟类型解析,避免版本报错
  • 或者使用typing-extensions库来兼容新特性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:27:30