NameError: name 'List' is not defined
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
)
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.
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