马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> def times(s:list[int], n:int = 5) -> list:
pass
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
def times(s:list[int], n:int = 5) -> list:
TypeError: 'type' object is not subscriptable
>>>
请问各位老师,这是什么原因?是不是版本的原因?
这个错误是因为在 Python 3.8.5 版本中,要使用类型提示(如 list[int]),你需要从 __future__ 模块中导入 annotations。
这个特性在 Python 3.9 版本中已经成为默认行为,但在较早的版本中,你需要手动导入。请尝试在代码开头添加以下导入语句:
from __future__ import annotations
修改后的代码应该如下:
from __future__ import annotations
def times(s: list[int], n: int = 5) -> list:
pass
这样应该可以解决你遇到的问题。
|