2013-02-22 20 views
7

私は '要求'のPythonライブラリを使っています。この後の今Pycharm:コード補完が推奨されていない

req = requests.get("http://google.com") 

私はreq.を入力した場合、私は、私がアクセスできるすべてのメソッドのリストを取得することになっています。しかし、何らかの理由で、たとえ手動でctrl-spaceを押しても、私はしません。

これをipythonで試してみると、私はオートコンプリート推奨を得ています。 pycharmの組み込みのpythonコンソールで試してみても、私は推奨を得ています。

なぜこれが起こっていますか?

答えて

15

Pythonは動的に型指定された言語なので、どのような型のものであるかを確認し、システム上のライブラリを正しく検査する必要があります。コードにオブジェクトがどのような型であるかがはっきりしていることを確認してください。

実行時の型検出を有効にするための良い方法が最近追加されました。PyCharmは実行中(デバッグ中)にプログラムにフックし、使用される変数のタイプをチェックします。

これを有効にするには、環境設定から「Pythonデバッガ」を選択し、「コード洞察の実行時型情報を収集する」を選択します。

Preferences screen of PyCharm

また、パラメータや戻り値の型についての情報を含むEpydocやスフィンクススタイルドキュメンテーション文字列を使用してPyCharmを「伝える」ことができます。 PyCharmはこれらを使用して検査を改善します。

6

Pythonは動的に型指定された言語です。つまり、 "get"関数は戻り値の型を宣言しません。 IPythonまたはPyCharmコンソールにコードを入力するときは、コードが実際に実行されています。実行中のインタプリタでオブジェクトインスタンスを検査し、そのメソッドのリストを取得することは可能です。 PyCharmやその他のPython IDEにコードを入力するときは実行されません。静的解析を使用してメソッドの戻り型を推論することしかできません。これはすべての場合に可能ではありません。

関連する問題