シーケンス(リストなど)のメソッド__getitem__()
は、単一のアイテムまたは一連のアイテムを返すことができます。例えば、以下の機能の装飾与えられた:__getitemの正しい型ヒント
def __getitem__(self, index) -> Union[Product, Generator[Product, None, None]]:
return super(Products, self).__getitem__(index)
使用例:
i1 = 34
for product in products[i1:]:
print(product.name)
私はUnion[Product, Generator[Product, None, None]]
は不適切として、この正しいが、PyCharmフラグであると信じます。入力ライブラリを誤って使用していますか?これはPyCharmの問題ですか?
ありがとうございます!
ジェネレータのためのものであり、シーケンスのものではありません。 – user2357112
それは動作しますが、別の質問 - リストまたはシーケンスが発生しますか? 標準ドキュメントから: 1. [データモデル](https://docs.python.org/3.5/reference/datamodel.html#the-standard-type-hierarchy)では、「式として使用すると、スライスは同じタイプのシーケンスです " 2. [typing](https://docs.python.org/3/library/typing.html#typing.List)は次のように述べています:" List(list、MutableSequence [T] ) リストの一般的なバージョン。戻り値の型に注釈を付けるのに便利です。引数に注釈を付けるには、マッピング、シーケンス、またはAbstractSetなどの抽象的なコレクション型を使用することをお勧めします。 – hansonap