2016-11-11 8 views
0

私はPyCharmをエディタとして使用しています。例えば、私は次の機能があります。Python。変数のヒント

def get_instance(): 
    # method without doc sctring in some module 
    # returns instance of MyClass 
    return some_var 

をそして私はget_instance()を呼び出し、二番目のファイルがあります:値のデータの型を定義するためにどのように私ができる

var = get_instance() 

を?私は変数のオートコンプリートを使いたい。

phpの例では、それはこのようになります。この後

/** @var MyClass $var */ 
$var = getInstance(); 

私は$varのすべてのメソッドとプロパティを参照してくださいになります。 Python変数のdocstringを宣言するには?私は:type:rtypeについて知っていますが、私は特定の変数の型を宣言する必要がある場合?いくつかのタイプを宣言できますか?私は何をすべきか?

参考:get_instance()で変更することはできません。

+0

あなたは[ヒント](https://docs.python.org/3/library/typing.html)で見たことがありますか? – Olian04

+0

ドキュメントストリングをどこで使う必要があるのか​​を明確にしてください。 –

+0

@Rightlegはコードの任意の場所にあります。例: 'get_docker()' 'Docker'インスタンスを返します(私はそれを知っています)。しかし、私はそれを変更することはできません。そこで、私は 'var = get_docker()'を呼び出します。そして、 'var'の型を定義したいと思います(それはDockerのインスタンスです)。 –

答えて

0

クラスの説明プロパティと同じ方法で実行できます。ここでは例:

from example_module import MyClass 

var = get_instance() 
""" 
:type var: MyClass 
""" 

また、あなたがこのようなインポートせずに説明を使用することができます。第二の方法

var = get_instance() 
""" 
:type var: example_module.MyClass 
""" 

PEP 484を使用している:Pycharmでオートコンプリートの

test = my() # type: dict 

例:

enter image description here

enter image description here

enter image description here

2

私はdocstringでこれを行うことはできませんが、annotationというメカニズムがあります。コロン:に続くパラメータに任意の式を追加し、矢印->を使用して関数宣言自体に追加することができます。例:

def getInstance(param: str) -> MyClass 
    return some_var 

ここでは、図の目的で入力パラメータを追加しました。この場合、strMyClassはそれぞれ予想される入力と戻り値の型を表すオブジェクトです。それらはあなたのコードで直接使用されることはありません。そのようなことを気にするエンドユーザーのために(編集者のような)func_annotations属性に隠れてしまいました。

+0

答えをありがとう。しかし、どのように私はそれがpython 3でのみ動作することを知っている。それは本当ですか?同様の方法です。 - 各パラメータのdocstingに ':type'を使用します。しかし、変数のインスタンスを指定するのが便利なことがあります(特に、関数呼び出しのdocstringを変更できない場合)。 –

関連する問題