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 guess this is less important because the IDE is complaining about list
type does not define __getitem__
method which is no true. I'm wondering if it's a bug or I used it in a wrong way.
Accoring 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)
Ł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
.