19

botoなどのサードパーティのライブラリを使用している場合、PyCharm は非常にうまくオートコンプリートできるようです

ここに画像の説明を入力

ただし、独自の関数を定義するとすぐに、その関数内でオートコンプリートが機能しなくなります。関数にその引数に関する型情報を与えることができないため、その理由を理解しています。そのため、オートコンプリートの方法を推測できません。この問題を回避する方法はありますか?

編集

docstring(Python 2用)を使用してみましたが、まだオートコンプリートはありません

def delete_oldest_backups(conn, backups_to_keep, backup_description):
    """
    delete_oldest_backups(EC2Connection, int, string)
    """

boto.ec2.connection.EC2Connectionただの代わりに試してみましたEC2Connection

4

4 に答える 4

14

タイプヒントを使用できます: http://www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html

 def some_method(self, conn):
   """
   @type conn: EC2Connection
   """
   conn.<autocomplete>
于 2013-07-23T09:56:13.037 に答える
5

Python 3 のパラメーターと戻り値の注釈を使用して、関数のパラメーターに関する型情報を指定できます。Python 2 を使用している場合は、関数の docstring で情報を指定することもできます。PyCharm は、標準ライブラリのバイナリ モジュールの docstring で使用される形式を理解します。次に例を示します。

"""
foo(int, string) -> list

Returns the list of something
"""
于 2011-03-15T12:17:06.050 に答える
1

ライブラリは、pyCharm の「パッケージ マネージャー」からインストールできます。

[設定] -> [プロジェクト インタープリター] -> [Python インタープリター] に移動します。

パッケージ一覧

[パッケージ] リストで [インストール] をクリックし、インストールするライブラリを検索します。

パッケージをインストールする

インストールが完了すると、エディタでオートコンプリートが利用できるようになります。

関数内のオートコンプリート

これがあなたが探しているものであることを願っています。

于 2014-03-14T10:34:36.853 に答える
1

PyCharm がオブジェクトのインスタンスを認識し、そのすべてのメソッドを取得するには、次のステートメントを使用する必要があります。しかし、どちらもプログラミングと実行時間を浪費する恐ろしい方法だと思います。

assert isinstance(instanceX, ClassOfInstanceX)  
instanceX.{#list of method/properties appears}

または、クラス名を使用して、呼び出すたびにメソッドまたはプロパティを呼び出し、インスタンスを self パラメーターに渡すこともできます。しかし、これは私の好みでは、特にネストされたクラスでは冗長すぎます

ClassOfInstanceX.{#list of method/properties appears}
     # then you will have...
ClassOfInstance.method(instanceX, args...)
于 2012-02-10T10:02:51.173 に答える