1. ホーム
  2. パイソン

[解決済み】指定された型のコレクションをタイプヒンティングする

2022-04-09 03:38:13

質問

Python 3 の関数アノテーションを使って、PyCharm や他の IDE で型ヒンティングのために同種のリスト(または他のコレクション)に含まれるアイテムの型を指定することは可能でしょうか?

int 型のリストに対する擬似的な Python のコード例です。

def my_func(l:list<int>):
    pass

Docstringを使えば可能なのは分かっているのですが...。

def my_func(l):
    """
    :type l: list[int]
    """
    pass

...が、可能ならアノテーションスタイルがいい。

どのように解決するのですか?

私自身の質問に答えると、TLDRの答えは次のようになります。 <ストライク いいえ はい .

アップデート2

2015年9月、Type HintsをサポートしたPython 3.5がリリースされ、その中には 新しい タイピング モジュール . これにより、コレクションに含まれる型を指定することができます。2015年11月現在、JetBrains PyCharm 5.0はPython 3.5に完全対応し、下図のようなType Hintsを搭載しています。

アップデート1

2015年5月時点のものです。 PEP0484 (タイプヒント) が正式に受理されました。また、実装のドラフトは、以下のサイトで公開されています。 github under ambv/typehinting .

オリジナル回答

2014年8月現在、コレクション内(例:文字列のリスト)の型指定にPython3の型アノテーションを使用することはできないことを確認しています。

reStructuredTextやSphinxのようなフォーマットされたdocstringの使用は実行可能な代替手段であり、様々なIDEでサポートされています。

また、Guidoはmypyの精神でタイプアノテーションを拡張するアイデアについて熟考しているようです。 http://mail.python.org/pipermail/python-ideas/2014-August/028618.html