IntelliJ IDEA(およびPyCharm)でPythonをコーディングすると、EpytextまたはreStructuredTextを使用して、予想されるパラメーターのタイプと戻り値のタイプを文書化できることがわかりました。これらは、IDEがオートコンプリートを提供し、検査エラーチェックを改善するのに役立つように、必要に応じて提供できます。
私がよく理解できないのは、インスタンス変数とクラス変数の型アノテーションを指定する方法です。IntelliJが認識する方法でこれを行う方法はありますか?
たとえば、IntelliJがの戻り型を推測できずsome_function()
、関数がライブラリ内にあり、@rtype
コメントを追加できないとします。self.bar
インスタンス変数の型を指定するにはどうすればよいですか?
class Foo:
def __init__(self):
# How can I document that self.bar is of type Bar?
self.bar = some_function()
編集:
最後に、インスタンス変数のタイプを文書化するための適切な構文を見つけました。変数割り当ての直後にdocstringを配置します。
class Foo:
def __init__(self):
self.bar = some_function()
"""@type: Bar"""
注意すべき2つのことは、IntelliJ/PyCharmは可変のdocstring形式しか理解していないように見えるということです。コメントdocstring形式、またはクラスdocstringでのタイプの指定は機能しません。
また、変数docstringが二重アンダースコアのプレフィックス付き変数に対して機能しないというバグがあるようです。