Python中“Dict”是否为关键字?代码中未找到其定义该如何排查?
关于代码中
Dict的疑问解答 1. 确认:Dict不是Python关键字
Python的关键字里没有Dict,原生字典类型是小写的dict。大写的Dict是用于类型提示的工具,属于Python标准库的一部分。
2. 为什么找不到Dict的定义?
Dict不是你代码库自定义的类型,它来自Python标准库:- Python 3.8及更早版本:来自
typing模块,代码里应该有from typing import Dict这样的导入语句 - Python 3.9及以后版本:可以直接用
collections.abc.Dict,同时也兼容从typing导入的写法
- Python 3.8及更早版本:来自
- 你用grep搜不到定义是因为它的定义在标准库代码里,不在你的业务代码库中。如果要验证,你可以搜代码里的导入语句,比如执行
grep -r "from typing import.*Dict"或者grep -r "import typing.*Dict",应该能找到对应的导入行。
另外补充:现在Python 3.9+推荐直接用原生的dict[int, List[QuantityClass]]来写类型提示,不过很多遗留代码还是保留了Dict的写法。
内容的提问来源于stack exchange,提问作者roulette01
相关产品推荐
相关产品推荐

