2016-11-17 7 views
2

Python 3では、引数の説明と型ヒントを組み合わせることができますか?あなたの関数パラメータに説明を追加することができますPythonの3では

def foo(host: 'ip address for connection') 
    cool_stuff() 

ます。また、後でmypyで確認することができ、予想されるタイプを提供することができますどちらも、私の中に非常に便利です

def foo(host: str) 
    cool_stuff() 

を目 - 両方を組み合わせる方法はありますか?mypyは一貫性をチェックできますか?

答えて

4

これは部分的にはPEP 484と書かれていますが、機能の注釈、タイプヒントを明確かつ唯一使用するためです。

は、具体的にで、それは述べて:引数の

一行はPEP 3107を明示的に機能注釈内の任意の表現の使用をサポートしていることを指摘しています。新しい提案は、PEP 3107の仕様と互換性がないとみなされます。

や状態に移行:

我々はタイプヒントは、最終的には、アノテーションのための唯一の使用になることを願っていますが、これは初期のロールアウトした後、追加の議論や非推奨の期間が必要になりますPythonでタイピングモジュール。原因コードの可読性が低下すると考えられますが、明らかに拒絶された指定の両方

代替:すべてのこれらのオプションにもかかわらず

は、提案ができるように循環されているタイプのヒントと共存するためのアノテーションの他の形態個々の議論。 1つの提案では、与えられた引数の注釈が辞書リテラルである場合、各キーは異なる形式の注釈を表し、キー'type'はタイプヒントに使用されることを示唆しています。 このアイデアとその変形の問題点は、表記法が非常に「騒々しく」なり、読みにくいことです。

この両方を許可すると、このPEPのポイントを上回り、アノテーションの使用を断片化します。最後に、あなたの最良の選択肢は、パラメータを文書化するために良いol 'docstringを使い、型ヒントのためだけに関数の注釈を使うことです。

関連する問題