epydoc と Sphinx の両方のドキュメント ジェネレーターを使用すると、コーダーは任意/すべての関数パラメーターの型に注釈を付けることができます。
私の質問は: docstringに文書化されているときに、これらの型を (実行時に)強制する方法 (またはモジュール) はありますか? これは厳密な型付け(コンパイル時チェック) ではありませんが、(より可能性が高い)厳密な型付け(実行時チェック) と呼ばれる可能性があります。たぶん「ValueError」を発生させるか、さらに良いことに...「SemanticError」を発生させます
理想的には、 xkcdimport antigravity
による " " モジュールに似たもの (モジュールのようなもの)がすでに存在し、この "firm_type_check" モジュールは、ダウンロードできる便利な場所に既に存在しているはずです。
参考: epydoc と sphinz のドキュメント文字列は次のとおりです。
epydoc: 関数とメソッドのパラメーター:
- @param p: ... # 関数またはメソッドのパラメーター p の説明。
- @type p: ... # パラメータ p の予想される型。
- @return: ... # 関数またはメソッドの戻り値。
- @rtype: ... # 関数またはメソッドの戻り値の型。
- @keyword p: ... # キーワード パラメータ p の説明。
- @raise e: ... # 関数またはメソッドが例外 e を発生させる状況の説明。
Sphinx: Python オブジェクト記述ディレクティブ内で、これらのフィールドを含む reST フィールド リストが認識され、適切にフォーマットされます。
- param、parameter、arg、argument、key、keyword: パラメータの説明。
- type: パラメータのタイプ。
- raises、raise、except、exception: 特定の例外が発生したとき (および発生したとき)。
- var、ivar、cvar: 変数の説明。
- return, return: 戻り値の説明。
- rtype: 戻り型。
私が見つけた最も近いものは、mail.python.org で Guido によって言及され、Mypy Examplesで Jukka Lehtosalo によって作成されたものでした。 CMIIW : mypy は py3 モジュールとしてインポートできません。
docstring自体を使用しない同様のスタックオーバーフローの質問: