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
.