2016-09-27 57 views
4

我的問題是不同的,因爲我使用類型提示犯了一個錯誤。Pycharm:類型提示項目列表

我發現了一個奇怪的類型pycharm鉸鏈: enter image description here

Example是我自己的類。但我想這不重要,因爲IDE抱怨list類型沒有定義__getitem__方法,這是不正確的。我想知道這是一個錯誤還是我錯誤地使用了它。

回答

6

意思是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) 
+0

沒注意到!感謝:D – spacegoing

2

Łukasz解釋瞭如何更正您的代碼。我會解釋爲什麼錯誤信息說明了它的作用。

list定義爲__getitem__,爲true,但這不是錯誤消息所抱怨的。錯誤消息是說type本身,這是list類型的類型,不支持__getitem__。對於list[whatever]有效,type將不得不定義__getitem__方法,而不是list

+0

很高興知道!非常感謝:D – spacegoing