My question is different because I made a mistake using type hint.
I found a weird type hinging in pycharm:
Example is my own class. But I gues
According to official PEP to denote list of objects you should use typing.List, not list builtin.
from typing import List
class Something:
pass
def f(seq: List[Something]): # no warning
for o in seq:
print(o)
Update January 2021:
Please note that built-in generics were implemented in Python 3.9, as described in PEP585.
Łukasz explained how to correct your code. I'll explain why the error message says what it does.
list defines __getitem__, true, but that isn't what the error message is complaining about. The error message is saying that type itself, which is the list type's type, doesn't support __getitem__. For list[whatever] to be valid, type would have to define a __getitem__ method, not list.