我的问题不同,因为我使用类型提示时出错了。
Example
是我自己的班级。但我想这不太重要,因为IDE抱怨list
类型没有定义__getitem__
方法,这是不正确的。我想知道这是一个错误还是我以错误的方式使用它。
答案 0 :(得分:7)
根据official PEP来表示您应该使用typing.List
而不是list
内置的对象列表。
from typing import List
class Something:
pass
def f(seq: List[Something]): # no warning
for o in seq:
print(o)
答案 1 :(得分:2)
Łukasz解释了如何纠正您的代码。我将解释为什么错误消息会说明它的作用。
list
定义__getitem__
,为true,但这不是错误消息所抱怨的内容。该错误消息表明type
本身(list
类型的类型)不支持__getitem__
。要使list[whatever]
有效,type
必须定义__getitem__
方法,而不是list
。