NameError: name 'List' is not defined

后端 未结 3 844
情深已故
情深已故 2020-12-29 18:01

I\'m really unsure why this isn\'t working. Here is the important part of the code (it\'s from a leetcode challenge). The first line throws the NameError.



        
相关标签:
3条回答
  • 2020-12-29 18:40

    To be able to specify a list of str's in a type hint, you can use the typing package, and from typing import List (capitalized, not to be confused with the built-in list)

    0 讨论(0)
  • 2020-12-29 18:44

    Since Python 3.9, you can use built-in collection types (such as list) as generic types, instead of importing the corresponding capitalized types from typing.
    This is thanks to PEP 585

    So in Python 3.9 or newer, you could actually write:

    def totalFruit(self, tree: list[int]) -> int: # Note list instead of List
        pass
    

    without having to import anything.

    0 讨论(0)
  • 2020-12-29 18:49

    To be able to annotate what types your list should accept, you need to use typing.List

    from typing import List
    

    So did you import List?

    Update

    If you're using Python 3.9, see @Adam.Er8's answer

    0 讨论(0)
提交回复
热议问题