2012-07-10 96 views
8

与えられたPython関数の呼び出し元をPyCharmが表示する方法はありますか?pycharm find Python関数の呼び出し先

私は現在、プロジェクト全体の関数名を検索するだけです。これはよく機能しますが、関数名があいまいな場合は誤ったヒットが多く発生します。私はどこかでフィーチャーが欠けているのだろうかと思っています。検索結果をさらに絞り込んで、モジュールがどこから検索しているのかを表示するだけです。あなたが機能を選択し、使用状況の検索を実行するためのAltキー + Shiftキー + F7を押すことができますPyCharmで

答えて

10

。また、「編集→検索→用途の検索」の下にあります。それはテキスト検索よりも知的だと思われます。

静的解析を使用すると、動的バインディングが使用され、多くのイントロスペクションがあるため、関数が呼ばれている場所を見つけることは一般的に難しいので、誤検出ミスを非常に簡単に受けます。モジュールレベルの関数の場合、私は良い解決策は、常にfrom module import functionを実行しないでください、関数を呼び出すためにmodule.functionを使用することだと思います。そうすれば、 'module.function'のテキスト検索を行うことができます。 Pythonスタイルのガイドでは一般的に、関数などをこのようにインポートすることをお勧めします。

もちろん、検索メソッドの呼び出しは、はるかに困難です。 JavaとC#で開発するのが好きなことの1つは、静的解析によってメソッドのすべての用途を見つけることができることです。

+0

私が探していた機能とまったく同じように見えます。ありがとうございました。名前空間を扱いやすいものにするために 'import as'を使うことがよくありますが、検索がさらに難しくなるという欠点があります。 –

+1

PyCharmの次のバージョンでは、 "Find Usages"バインディングが ''に変更されました。何らかの理由で、しかしほとんどの理由で。それに失敗した場合、このメニュー項目は現在「編集→検索→用途の検索」にあります。 「閲覧」や「ナビゲート」メニューではなく、最上位の「編集」の下に読み込み専用の「検索」操作が存在するのは、誰にとっても最悪の推測です。 (_私はnuthin 'を持っています._) –

2

Ctrlキーを押しながらマウスを機能ヘッダーに重ねると、機能名が強調表示されます。関数名をクリックして、関数が呼び出されるすべてのインスタンスのリストを取得します。

Ctrlキーを押しながらマウスを関数呼び出しに重ねると、関数名が強調表示され、関数名をクリックすると関数定義に移動します。