每当我尝试对字符串列表进行类型提示时,例如:
tricks: list[str] = []
我遇到了TypeError: 'type' object is not subscriptable的错误。我正在跟随一个课程,他们使用相同的代码,但是它对他们有效。所以我猜问题可能是我的环境和课程环境之间的差异之一。我使用:
- vs code
- anaconda
- python 3.8.15
- jupyter notebook
有人能帮我解决这个问题吗?
我在普通的.py文件中使用了相同的代码,但仍然不起作用,所以那可能不是问题所在。 Python版本也不应该是问题,因为这是基本的。 Anaconda也不应该导致这样的错误消息。 剩下的就是vscode和pycharm之间的差异,这也很奇怪。 因此,我不知道该尝试什么。
list[str] = []
这不是正确的类型提示格式。请展示您的实际代码和完整的错误信息。 - John Gordonlist[str]
就像调用list.__getitem__(str)
,也就是直接向list
_类_(而不是它的实例)询问使用键str
(即字符串类本身)查找某个元素。这可能不是你想要的结果。 - Alexanderlist[str]
实际上是完全有效的。 - user2357112type.__getitem__(list, str)
这样。Python 3 引入了__class_getitem__
,这样(据我所知)你可以定义这个语法的含义,而不必定义一个特殊的元类。 - chepner