Mi pregunta es diferente porque cometí un error al utilizar la sugerencia de tipo.
Encontré un tipo raro de bisagra en pycharm:
Example
es mi propia clase. Pero supongo que esto es menos importante porque el IDE se queja sobre el tipo de list
que no define el método __getitem__
, lo cual no es cierto. Me pregunto si es un error o si lo usé de manera incorrecta.
Accediendo al PEP oficial para denotar la lista de objetos que debe usar typing.List
, no list
incorporada.
from typing import List class Something: pass def f(seq: List[Something]): # no warning for o in seq: print(o)
Łukasz explicó cómo corregir su código. Voy a explicar por qué el mensaje de error dice lo que hace.
list
define __getitem__
, true, pero no es de lo que se queja el mensaje de error. El mensaje de error list
que el type
sí mismo, que es el tipo del tipo de list
, no admite __getitem__
. Para que la list[whatever]
sea válida, el type
tendría que definir un método __getitem__
, no una list
.