我的問題是不同的,因爲我使用類型提示犯了一個錯誤。Pycharm:類型提示項目列表
Example
是我自己的類。但我想這不重要,因爲IDE抱怨list
類型沒有定義__getitem__
方法,這是不正確的。我想知道這是一個錯誤還是我錯誤地使用了它。
我的問題是不同的,因爲我使用類型提示犯了一個錯誤。Pycharm:類型提示項目列表
Example
是我自己的類。但我想這不重要,因爲IDE抱怨list
類型沒有定義__getitem__
方法,這是不正確的。我想知道這是一個錯誤還是我錯誤地使用了它。
意思是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)
Łukasz解釋瞭如何更正您的代碼。我會解釋爲什麼錯誤信息說明了它的作用。
list
定義爲__getitem__
,爲true,但這不是錯誤消息所抱怨的。錯誤消息是說type
本身,這是list
類型的類型,不支持__getitem__
。對於list[whatever]
有效,type
將不得不定義__getitem__
方法,而不是list
。
很高興知道!非常感謝:D – spacegoing
沒注意到!感謝:D – spacegoing