2016-09-27 1 views
4

タイプヒントを使用して間違いをしたため、私の質問が異なります。Pycharm:ヒントリストのヒントリスト

私はpycharmでヒンジ奇妙なタイプが見つかりました: enter image description here

Exampleは自分のクラスです。しかし、IDEがlistタイプについて不満を述べているので、これはあまり重要ではないと思います。__getitem__メソッドがtrueではないと定義しています。私はそれがバグか、それを間違った方法で使ったのか疑問に思っています。

答えて

6

official PEPには、listではなく、typing.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__を定義していますが、これはエラーメッセージで不平を言っているものではありません。エラーメッセージには、自身(listタイプのタイプ)は__getitem__をサポートしていません。 list[whatever]が有効であるためには、typeは、listではなく__getitem__メソッドを定義する必要があります。

+0

おしゃれな!多くのありがとう:D – spacegoing