コード補完
このセクションでは、コーディングプロセスのスピードアップを可能にするコンテキスト対応コード補完のさまざまなテクニックについて説明します。
基本補完
基本コード補完は、可視性スコープ内のクラス、メソッド、キーワードの名前を完成させるのに役立ちます。コード補完を呼び出すと、PyCharm はコンテキストを分析し、現在のキャレット位置から到達可能な選択肢を提案します(提案にはライブテンプレートも含まれます)。
基本コード補完がフィールド、パラメーター、または変数宣言の一部に適用されている場合、PyCharm は項目型に応じて可能な名前のリストを提案します。
基本コード補完を 2 回目に呼び出すと、クラス、関数、モジュール、変数の名前が表示されます。
基本補完を呼び出す
名前の入力を開始します。
- Ctrl+Space を押すか、メインメニューから
以下のイメージは、次の場合の基本的なコード補完を示しています。
メソッド:
メソッドパラメーター:
辞書:
Django テンプレート:
Python 文字列リテラルのファイルパス補完:
を選択してください。 必要に応じて、Ctrl+Space を 2 回押します(または Ctrl+Alt+Space を押します)。
これは、クラス、関数、モジュール、変数の名前を表示します。
タイプマッチングの補完
スマートタイプマッチングコード補完は候補リストをフィルタリングし、現在のコンテキストに適用可能な型のみを表示します。
タイプマッチング完了を呼び出す
入力を開始します。デフォルトでは、PyCharm は入力時に自動的にコード補完ポップアップを表示します。自動補完が無効になっている場合は、Ctrl+Shift+Space を押すか、メインメニューから
を選択します。- Ctrl+Shift+Space を押すか、メインメニューから
現在のコンテキストに最も適した提案がハイライトされます。
を選択してください。 必要に応じてもう一度 Ctrl+Shift+Space を押してください。
ステートメント補完
ステートメント補完 Ctrl+Shift+Enter を使用して、構文的に正しいコード構成を作成できます。必要な構文要素を挿入し、次のステートメントの入力を開始できる位置に移動します。
メソッド宣言を補完する
メソッド宣言の入力を開始し、左括弧の後に Ctrl+Shift+Enter を押します。
PyCharm は、必須パラメーター
self
を使用してメソッド宣言を自動的に完了します。Python クラスでメソッド宣言の入力を開始すると、PyCharm はパラメーターリストの括弧を開いた後にself
を挿入します。この動作は、エディター設定のスマートキーページで構成できます。
コード構成を補完する
コード構成の入力を開始し、Ctrl+Shift+Enter を押します。
PyCharm は、構成を自動的に完了し、必要な句読点を追加します。キャレットは次の編集位置に配置されます。
コレクション内の完全なステートメント
PyCharm は、複数行コレクションリテラルの改行の前に自動的に末尾のコンマを挿入します。dict リテラルでは、キーと値の間にコロンを挿入します。 Ctrl+Shift+Enter を押して、ステートメントの補完を呼び出します。
一部の不完全なコレクションリテラルの構文に関する言語のあいまいさのため、dict リテラルの最初のキーの後、または括弧で囲まれたタプルの最初の項目の後にコロンが挿入されることに注意してください。
ヒッピー補完
ヒッピー補完は、目に見える範囲でテキストを分析し、現在のコンテキストから提案を生成する補完エンジンです。それは現在開いているファイルのどれからでもどんな単語でも完成させるのに役立ちます。
キャレットの文字列を既存の単語に展開する
最初の文字列を入力し、次のいずれかを実行します。
Alt+/ を押すか、
を選択して、キャレットの前に一致する単語を検索します。Alt+Shift+/ を押すか、
を選択して、キャレットの後ろにある他の開いているファイルで一致する単語を検索します。
提案された最初の値が表示され、プロトタイプがソースコードでハイライトされます。
提案を受け入れるか、Alt キーを押しながら希望の単語が見つかるまで / を押し続けます。
後置コード補完
後置コード補完を使うと、コードを書くときの後方キャレットジャンプを減らすことができます。すでにタイプされた式は、ドット、式のタイプ、そのコンテキストの後に入力する接尾辞に基づいて別のものに変換できます。
後置の補完を有効にして設定する
設定 / 環境設定 | エディター | 一般 | 後置補完に移動し、後置補完を有効にするチェックボックスを選択します。
接尾辞テンプレートの展開に使用する Tab、Space、または Enter を選択します。
選択した言語の特定の接尾辞テンプレートを有効 / 無効にします。
後置でステートメントを変換する
式を入力し、ドットの後に接尾辞を入力します(例:
.if:
)。function m(arg) { arg.if }最初の式は
if
ステートメントでラップされます。function m(arg) { if (arg) { } }
特定の接尾辞補完テンプレートを無効にするには、設定 / 環境設定ダイアログ Ctrl+Alt+S でエディター | 一般 | 後置補完を選択します。
Tab、Space、または Enter を選択して、接尾辞テンプレートを展開できます。
たとえば、事前定義された後置テンプレートを編集して、長いキーを短いキーに置き換えたり、適用可能な式のタイプのリストを拡張したりできます。PyCharm の制限により、Python のカスタム後置テンプレートを作成することはできません。
F-string 完成
通常の文字列リテラルで波括弧を開くと、PyCharm は f-string と同じ補完候補を提供します。提案されたオプションの 1 つを選択すると、欠落している f
プレフィックスと終了波括弧を追加することにより、IDE はリテラルを f-string に自動的に変換します。

モジュール名の補完時に自動インポート
Python コードでモジュールメンバーまたはパッケージを参照してコード補完を呼び出すと、PyCharm は自動的にインポートステートメントを追加します。コード補完での自動インポートは、numpy
の場合は np
、pandas
の場合は pd
など、いくつかの一般的なパッケージ名エイリアスにも適用されます。

コード補完設定を構成する
コード補完オプションを構成するには、設定 / 環境設定ダイアログ Ctrl+Alt+S で に移動します。
次の設定を選択できます。
項目 | 説明 |
---|---|
大 / 小文字を区別する | 補完候補で大文字と小文字を区別するかどうかを選択します。最初の文字を大文字にするか、すべての文字を大文字にするかを選択します。 |
単一の候補を自動的に挿入 | 基本的および / またはスマートなタイプマッチングの補完に関する提案が 1 つしかない場合に、コードを自動的に完了するかどうかを選択します。 |
候補をアルファベット順にソートする | 候補リスト内のアイテムを、関連性で並べ替えるのではなく、アルファベット順に並べ替える場合に選択します。 この動作は、候補リストの |
入力時に候補を表示する | 明示的に補完を呼び出さなくても、候補リストが自動的に呼び出されるようにする場合に選択します。このオプションはデフォルトで有効になっています。 |
スペース、ドット、その他のコンテキスト依存キーを押して選択した候補を挿入する | 選択した候補を挿入する場合は、言語、コンテキストなどに依存する特定のキーを入力して選択します。 |
ドキュメントのポップアップを次で表示 | 選択リストの各項目のポップアップを自動的に表示し、現在、ルックアップリストでハイライトされているクラス、メソッド、またはフィールドのドキュメントを表示する場合に選択します。 右側のフィールドで、ポップアップが表示されるまでの遅延(ミリ秒)を指定します。 |
補完のヒントとテクニック
候補リストを絞り込む
単語の任意の部分(途中の文字からでも)を入力するか、ドット区切り記号の後にコード補完を呼び出すことによって、候補リストを絞り込むことができます。PyCharm はどんな位置にも入力した文字を含む提案を表示します。
これはワイルドカードの使用を不要にします:
CamelCase または snake_case 名の場合は、最初の文字のみを入力してください。PyCharm は自動的に頭文字を認識して照合します。
提案を受け入れる
次のいずれかの方法で、リストから提案を受け入れることができます。
Enter を押すか、リスト項目をダブルクリックして、キャレットの左側に挿入します。
Tab を押して、キャレットから右にある文字を置き換えます。
Ctrl+Shift+Enter を使用して、現在のコード構成を構文上正しいものにします(括弧のバランス、欠落している中括弧とセミコロンの追加など)。
特定のキーを使用して、選択した補完候補を挿入することもできます。設定 / 環境設定ダイアログ Ctrl+Alt+S でエディター | 一般 | コード補完を選択し、スペース、ドット、その他のコンテキスト依存キーを押して選択した候補を挿入するオプションを選択します。これらのキーは、言語、コンテキストなどに依存します。
リファレンスを表示する
候補リストの項目を選択するときに Ctrl+Shift+I を押すと、定義を使用できます。
候補リストの項目を選択するときに Ctrl+Q を押すと、クイック情報ビューを使用できます。
コード階層を表示する
候補リストからエントリを選択すると、コード階層を表示できます。
Ctrl+H - 型階層の表示
Ctrl+Shift+H - メソッドの階層を表示します。
機械学習支援コード補完を使用する
機械学習モデルを利用して、候補リストで最も適切なアイテムを上位にランク付けできます。
これを行うには、設定 / 環境設定ダイアログで Ctrl+Alt+S を に移動し、Machine Learning 支援による補完で Machine Learning に基づいてコード補完の候補を並び替えるオプションを有効にします。
および
の矢印アイコンは、提案の関連性が増加しているか減少しているかを示し、提案がリストの上下に移動したことを示します。

トラブルシューティング
コード補完が機能しない場合は、次のいずれかの理由が考えられます。
省電力モードがオンです(ファイル | 省電力モード)。これをオンにすると、エラーハイライト、オンザフライインスペクション、コード補完などのバックグラウンド操作を排除してラップトップの電力消費を最小限に抑えられます。
ファイルはコンテンツルートに存在しないため、コード補完に必要なクラス定義とリソースを取得しません。
詳細はプロジェクト構造の設定を参照してください。
補完候補リストに表示するクラスと関数を含むファイルは、プレーンテキストファイルとしてマークされています。
補完候補リストに表示する関数を含む外部ライブラリは、依存関係またはグローバルライブラリとして追加されません。
関連ページ:

ライブテンプレート | PyCharm
ライブテンプレートを使用して、ループ、条件、さまざまな宣言、出力ステートメントなどの一般的な構成をコードに挿入します。コードスニペットを展開するには、対応するテンプレートの省略形を入力してを押します。を押し続けると、テンプレート内の 1 つの変数から次の変数にジャンプします。を押して、前の変数に移動します。次の例は、カスタムライブテンプレートの使用方法を示しています。ライブテンプレートの種類:次のタイプのライブテンプレートが区別されます。シンプルなテンプレートには固定プレーンテキストのみ

ファイルタイプの関連付けを設定する | PyCharm
PyCharm はデフォルトのファイルタイプのセットを認識します。そのようなファイルは、対応する言語の構文に従って解析およびハイライトされます。PyCharm が認識できないファイルタイプで作業している場合(たとえば、それが独自開発のファイルタイプである場合)、カスタムファイルタイプを作成することもできます。キーワード、コメント、数字などのハイライトスキームを定義することによって、IDE がファイルを解析する方法を設定することができます。各ファイル形式を拡張子に関連付けることで、IDE がカスタ...

コードリファレンス情報 | PyCharm
このセクションでは、シンボルの定義を表示し、ドキュメント参照を表示し、ビューパラメーター情報機能を使用する方法について説明します。定義:PyCharm では、タグ、クラス、フィールド、メソッド、関数などのシンボルがプロジェクトでどのように定義されているかを確認することができます。この目的のために、IDE にはクイック定義ポップアップがあります。シンボルの定義を表示するには、エディターでシンボルを選択し、を押します(またはをクリックします)。または、キーを押したまま、任意のシンボルにカーソル

プロジェクト構造の設定 | PyCharm
PyCharm では、コンテンツは現在作業しているファイルのコレクションであり、サブフォルダーの階層に編成されている可能性があります。プロジェクトの最上位フォルダーは、そのコンテンツルートです。コンテンツルート内では、PyCharm はソースコードを含むフォルダーと、検索、解析、監視などの際に無視されるフォルダーを区別できます。さまざまなタイプのフォルダーを区別するには、コンテンツルートのフォルダーをソースフォルダーまたは除外フォルダーとしてマークします。ソースルートには、実際のソースファイルとリ...

自動インポート | PyCharm
インポートされていないクラスを参照すると、PyCharm はこのファイルを見つけてインポートのリストに追加できます。設定に応じて、単一のクラスまたはパッケージ全体をインポートできます。import 文が imports セクションに追加されますが、キャレットは現在の位置から移動せず、現在の編集セッションは中断されません。この機能はインポートアシスタントとして知られています。同じ可能性が XML ファイルに適用されます。名前空間がバインドされていないタグを入力すると、インポートアシスタントは名前空...