我真的不确定为什么这不起作用。这是代码的重要部分(来自 leetcode 挑战)。第一行抛出 NameError。
def totalFruit(self, tree: List[int]) -> int:
pass
如果我尝试导入 List
首先我得到一个错误 No module named 'List'
。我正在使用来自 Anaconda 的 Python 3.7.3。
原文由 Ariel Frischer 发布,翻译遵循 CC BY-SA 4.0 许可协议
我真的不确定为什么这不起作用。这是代码的重要部分(来自 leetcode 挑战)。第一行抛出 NameError。
def totalFruit(self, tree: List[int]) -> int:
pass
如果我尝试导入 List
首先我得到一个错误 No module named 'List'
。我正在使用来自 Anaconda 的 Python 3.7.3。
原文由 Ariel Frischer 发布,翻译遵循 CC BY-SA 4.0 许可协议
从 Python 3.9 开始,您可以使用内置集合类型(例如 list
)作为泛型类型,而不是从 typing
导入相应的大写类型。
这要归功于 PEP 585
所以在 Python 3.9 或更新版本中,你实际上可以这样写:
def totalFruit(self, tree: list[int]) -> int: # Note list instead of List
pass
无需导入任何东西。
原文由 Adam.Er8 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
为了能够注释您的列表应该接受什么类型,您需要使用
typing.List
那么您是否导入了
List
?更新
如果您使用的是 Python > 3.9, 请参阅@Adam.Er8 的回答