Python 名称错误:名称';列表';没有定义
我真的不确定这为什么不起作用。下面是代码的重要部分(来自leetcode挑战)。 第一行抛出NameErrorPython 名称错误:名称';列表';没有定义,python,python-3.x,python-typing,Python,Python 3.x,Python Typing,我真的不确定这为什么不起作用。下面是代码的重要部分(来自leetcode挑战)。 第一行抛出NameError def totalFruit(self,tree:List[int])->int: 通过 如果我首先尝试导入列表,我会得到一个错误没有名为'List'的模块。我正在使用来自Anaconda的Python 3.7.3。要能够注释列表应接受的类型,您需要使用键入。list from typing import List 那么您导入了列表了吗 更新 如果您使用Python>3.9,来在类
def totalFruit(self,tree:List[int])->int:
通过
如果我首先尝试导入
列表
,我会得到一个错误没有名为'List'的模块
。我正在使用来自Anaconda的Python 3.7.3。要能够注释列表应接受的类型,您需要使用键入。list
from typing import List
那么您导入了列表了吗
更新
如果您使用Python>3.9,来在类型提示中指定str的列表,那么您可以使用键入
包和从键入导入列表
(大写,不要与内置的列表
混淆),因为您可以使用内置的集合类型(例如列表
)作为泛型,而不是从typing
导入相应的大写类型
这是由于
因此,在Python 3.9或更新版本中,您实际上可以编写:
def totalFruit(self,tree:list[int])->int:#注意列表而不是列表
通过
无需导入任何内容。顺便说一句,这段代码会有更多问题<代码>对于i,树中的t
将在尝试将整数解包为两个值时产生一个类型错误。令人敬畏的是,键入导入列表中的似乎起到了作用,还必须修复我代码中其他不相关的错误,谢谢!让我说,是的!:)要使其向后兼容,请执行以下操作:来自_ufuture\u u导入注释
(来自文档)