2017-04-03 2 views

答えて

1

mypyは、Pythonプログラムのタイプヒントを検証するために使用できます。ドキュメントはhereであり、非常に包括的です。

2

mypyをご覧ください。ウェブサイトから

Mypyは、動的な(または「ダック」)タイピングおよび静的型付けの利点を組み合わせることを目指していPythonのための実験オプションの静的型チェッカーです。 Mypyは、強力な型システムとコンパイル時の型チェックで、表現力とPythonの利便性を兼ね備えています。 Mypy型は、標準のPythonプログラムをチェックします。基本的にランタイムオーバーヘッドなしでPython VMを使用してそれらを実行してください。

EDIT

が実際mypyタイプチェッカーで、示唆又は推論されるタイプに関連するエラーがある場合にのみチェックデフォルトではそう。また、ヒントなしの種類を報告するには、hereと記載されているように、追加のコマンドラインスイッチを使用できます。

は、タイプ注釈のない関数定義が見つかるたびにエラーを報告します。

--check-untyped-defsは、以前のオプションよりもそれほど厳しくありません。タイプ注釈があるかどうかにかかわらず、すべての関数のボディをチェックします。 (デフォルトでは、注釈のない本体は型チェックされません)。すべての引数がAny型を持ち、戻り型としてAnyを常に推測します。

--disallow-untyped-callsは、タイプ注釈を持つ関数が注釈なしで定義された関数を呼び出すたびにエラーを報告します。

...

+0

タイプヒントを持たない外部ライブラリから返されている変数型を推測できないときにエラーを報告するので、 'mypy'は過度に積極的です。私は、すべてのメソッドがフルタイプのヒントを持っているかどうかを確認したいだけです。これまではできませんでした。 –

+0

この場合、 '--follow-imports silent'は動作しませんか? http://mypy.readthedocs.io/en/latest/command_line.html#following-imports-or-not – Felix

+0

いいえ、 '--follow-imports silent'は私のためには機能しません。 –

1

その他のタイプのヒントを確認するために使用されmypyを述べたが、それはは彼らにを強制しません。型注釈についてより厳密であるために、あなたはfollowing configuration settingsを有効にする必要があります

disallow_untyped_calls(ブール値、デフォルトはfalse)タイプ 注釈を持つ関数からの型注釈なし 関数を呼び出し禁止します。

disallow_untyped_defs(ブール値、デフォルトはfalse)型注釈なしまたは不完全な型 注釈で 関数を定義禁止します。

または、代わりにcommand-line argumentsと設定できます。


FYI、PyLintはまだ型注釈を強制的にサポートしていませんが、feature requestがあります。そして、私はflake8/pyflakesのフロントに関連するものは表示されません - opening a feature requestと考えてください。

関連する問題