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