鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖

[已解决]TypeError: 'type' object is not subscriptable

[复制链接]
 楼主| 发表于 2023-4-22 15:26:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-22 15:26:50 | 显示全部楼层
[b]你遇到的问题是在Python 3.9之前的版本中,`tuple`作为一个内置的类型对象是不可下标的。因此,你应该使用`typing`模块中的`Tuple`类型进行类型注解。下面是根据你的代码修复后的版本:
from typing import Tuple

def f(a: Tuple[int, int]) -> int:
    return a[0] + a[1]

这样就可以避免错误,并在Python 3.5及以上版本中使用类型注解。然而,如果你正在使用Python 3.9或更高版本,你可以直接使用内置的`tuple`类型,如下所示:
def f(a: tuple[int, int]) -> int:
    return a[0] + a[1]

请确保你正在使用支持此语法的Python版本。


你也可以使用 `__future__` 模块来实现在早期 Python 版本(如 Python 3.7)中使用新特性的目标。例如,在 Python 3.7 中,你可以使用 `annotations` 功能来启用更高版本中的类型注解功能。下面是使用 `__future__` 在 Python 3.7 中启用新的类型注解功能的示例:
from __future__ import annotations

def f(a: tuple[int, int]) -> int:
    return a[0] + a[1]

需要注意的是,`__future__` 模块提供的功能取决于你的 Python 版本,因此,并非所有新特性都可以通过它实现。对于你的情况,`annotations` 功能可以帮助你在早期版本的 Python 中使用类型注解,但如果你想在更早的 Python 版本(如 3.5 或 3.6)中使用原生的 `tuple` 类型,`__future__` 是无法提供支持的。在这种情况下,你仍然需要使用 `typing` 模块中的 `Tuple` 类型。
[/b]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-22 15:27:10 | 显示全部楼层
isdkz 发表于 2023-4-22 15:26
你遇到的问题是在Python 3.9之前的版本中,`tuple`作为一个内置的类型对象是不可下标的。因此,你应该使用` ...

你晚了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-22 15:27:41 | 显示全部楼层
isdkz 发表于 2023-4-22 15:26
你遇到的问题是在Python 3.9之前的版本中,`tuple`作为一个内置的类型对象是不可下标的。因此,你应该使用` ...

你晚了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-22 15:28:20 | 显示全部楼层

明明是我的答案更好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-22 15:29:07 | 显示全部楼层
isdkz 发表于 2023-4-22 15:28
明明是我的答案更好

我已经自己解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-22 15:32:33 | 显示全部楼层
歌者文明清理员 发表于 2023-4-22 15:25
啊可以
现在已经找到了问题,annotions拼错了,看图:

emmnnnnn
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-12 06:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表