NameError:名称“列表”未定义

新手上路,请多包涵

我真的不确定为什么这不起作用。这是代码的重要部分(来自 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 许可协议

阅读 1.1k
2 个回答

为了能够注释您的列表应该接受什么类型,您需要使用 typing.List

 from typing import List

那么您是否导入了 List

更新

如果您使用的是 Python > 3.9, 请参阅@Adam.Er8 的回答

原文由 Mathieu Dhondt 发布,翻译遵循 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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题