次の方法で共有


Python コードを編集して Intellisense を使用する

開発に多くの時間をコード エディターで費やしているため、 Visual Studio での Python サポート では、生産性を高めるのに役立つ機能が提供されます。 IntelliSense 構文の強調表示、オートコンプリート、シグネチャ ヘルプ、メソッドのオーバーライド、検索、ナビゲーションなどの機能があります。

コード エディターは、Visual Studio の 対話型 ウィンドウと統合されています。 作業を進めるにつれて、2 つのウィンドウ間でコードを簡単に交換できます。 詳細については、「 チュートリアル手順 3: 対話型 REPL ウィンドウを使用する 」および「 対話型ウィンドウを使用する - 対話型に送信」コマンドを参照してください

アウトラインは 、コードの特定のセクションに集中するのに役立ちます。 Visual Studio でのコードの編集に関する一般的なドキュメントについては、 コード エディターの機能に関するページを参照してください。

Visual Studio オブジェクト ブラウザー を使用すると、各モジュールで定義されている Python クラスと、それらのクラスで定義されている関数を調べることができます。 この機能には、[ 表示 ] メニューまたはキーボード ショートカット Ctrl+Alt+J を使用してアクセスできます。

IntelliSense 機能を使用する

IntelliSense には、 入力候補署名のヘルプクイック ヒントコードの色分けが用意されています。 Visual Studio 2017 バージョン 15.7 以降では 、型ヒントもサポートされています。

パフォーマンスを向上させるために、Visual Studio 2017 バージョン 15.5 以前の IntelliSense は、プロジェクト内の各 Python 環境に対して生成された完了データベースに依存します。 パッケージを追加、削除、または更新する場合は、データベースの更新が必要になる場合があります。 データベースの状態は、[IntelliSense] タブの [Python 環境] ウィンドウ (ソリューション エクスプローラーのコンパニオン) に表示されます。詳細については、「環境」ウィンドウのリファレンスを参照してください

Visual Studio 2017 バージョン 15.6 以降では、データベースに依存しない IntelliSense の入力候補を提供するために、別の手段が使用されます。

入力候補

入力候補は、エディターの現在の位置で適切に入力できるステートメント、識別子、その他の単語として表示されます。 Intellisense は、コンテキストに基づいてオプションの一覧を設定し、不適切な項目や気が散る項目をフィルター処理します。 補完機能は、多くの場合、異なるステートメント(import など)や演算子(ピリオドを含む)の入力でトリガーされますが、キーボードショートカット Ctrl+J +Space を押すことでいつでも表示することができます。

IntelliSense によるメンバー補完を示す Visual Studio エディターのスクリーンショット。

入力候補リストが開いている場合は、方向キー、マウス、または入力を続けることで、目的の入力候補を検索できます。 さらに文字を入力すると、一覧がさらにフィルター処理され、候補が表示されます。 次のようなショートカットを使用することもできます。

  • 名前の先頭にない文字 ('parse' など) を入力して 'argparse' を検索する
  • 'abc' など、単語の先頭にある文字のみを入力して 'AbstractBaseClass' を検索し、'air' を検索して 'as_integer_ratio' を検索します。
  • 'b64' などの文字をスキップして 'base64' を検索する

いくつかの例を次に示します。

Visual Studio エディターでのフィルタリングを使用したメンバー補完を示すスクリーンショット。

変数または値の後にピリオドを入力すると、考えられる型のメソッドや属性と共にメンバー補完候補が自動的に表示されます。 変数に複数の型を指定できる場合、リストにはすべての型のすべての可能性が含まれます。 どの型がそれぞれの補完をサポートするかを示す追加情報が表示されます。 使用可能なすべての型が補完をサポートしている場合、注釈は表示されません。

Visual Studio エディターで複数の型に対するメンバー補完を示すスクリーンショット。

既定では、「dunder」メンバー (メンバー名の先頭と末尾が二重アンダースコア) は表示されません。 一般に、このようなメンバーには直接アクセスしないでください。 dunder を使用する必要がある場合は、先頭に二重アンダースコアを入力して、これらの補完をリストに追加します。

Visual Studio エディターにおけるプライベート dunder メンバーの補完の種類を示すスクリーンショット。

importステートメントとfrom ... import ステートメントには、インポートできるモジュールの一覧が表示されます。 from ... import ステートメントは、指定したモジュールからインポートできるメンバーを含むリストを生成します。

Visual Studio エディターでのインポートとインポートの完了を示すスクリーンショット。

raiseステートメントと except ステートメントには、エラーの種類である可能性が高いクラスの一覧が表示されます。 この一覧にはユーザー定義の例外がすべて含まれていない場合がありますが、適切な組み込み例外をすばやく見つけるのに役立ちます。

Visual Studio エディターでの例外の完了を示すスクリーンショット。

@記号 (at) を選択すると、デコレーターが開始され、潜在的なデコレーターが表示されます。 これらの項目の多くはデコレーターとして使用できません。 使用するデコレーターを決定するには、ライブラリのドキュメントを確認してください。

Visual Studio エディターでのデコレーターの完了を示すスクリーンショット。

詳細については、「 オプション - 完了結果」を参照してください。

型ヒント

型ヒントは、Visual Studio 2017 バージョン 15.7 以降で使用できます。

Python 3.5 以降の "型ヒント" (PEP 484 (python.org) は、引数、戻り値、およびクラス属性の型を示す関数とクラスの注釈構文です。 IntelliSense では、関数の呼び出し、引数、および注釈を持つ変数の上にマウス ポインターを置くと、型ヒントが表示されます。

次の例では、 Vector クラスは型 List[float]として宣言され、 scale 関数には引数と戻り値の両方の型ヒントが含まれています。 その関数の呼び出しにカーソルを合わせると、型ヒントが表示されます。

関数呼び出しをポイントして型ヒントを表示する方法を示すスクリーンショット。

次の例では、 Employee クラスの注釈付き属性が、属性の IntelliSense 入力候補ポップアップにどのように表示されるかを確認できます。

型ヒントを持つクラスの IntelliSense 入力候補を示すスクリーンショット。

また、通常、エラーは実行時まで表示されないため、プロジェクト全体で型ヒントを検証すると便利です。 このため、Visual Studio は、ソリューション エクスプローラーでコンテキスト メニュー コマンド >Run Mypy を使用して業界標準の Mypy ツールを統合します。

ソリューション エクスプローラーで Python プロジェクトで使用できる linting コマンドを示すスクリーンショット。

コマンドを実行すると、必要に応じて Mypy パッケージをインストールするように求められます。 その後、Visual Studio によって Mypy が実行され、プロジェクト内のすべての Python ファイルで型ヒントが検証されます。 Visual Studio の [ エラー一覧 ] ウィンドウにエラーが表示されます。 ウィンドウで項目を選択すると、コード内の適切な行に移動します。

簡単な例として、次の関数定義には、 input 引数が型 strであることを示す型ヒントが含まれていますが、その関数の呼び出しでは整数を渡そうとします。

def commas_to_colons(input: str):
    items = input.split(',')
    items = [x.strip() for x in items]
    return ':'.join(items)

commas_to_colons(1)

このコードで Mypy の実行 コマンドを使用すると、次のエラーが生成されます。

Mypy で型ヒントを検証した結果の例を示すスクリーンショット。

3.5 より前のバージョンの Python の場合、Visual Studio には Typeshed スタブ ファイル (.pyi) を通じて指定した型ヒントも表示されます。 スタブ ファイルは、型ヒントをコードに直接含めたり、直接使用しないライブラリの型ヒントを作成したりしない場合に使用できます。 詳細については、Mypy プロジェクト Wiki で Python モジュールのスタブを作成 するを参照してください。

Visual Studio では現在、コメントの型ヒントはサポートされていません。

署名のヘルプ

関数を呼び出すコードを記述すると、始めかっこ (を入力するとシグネチャ ヘルプが表示されます。 使用可能なドキュメントとパラメーター情報が表示されます。 関数呼び出し内のキーボード ショートカット Ctrl+Shift+Space を使用して、署名ヘルプにアクセスできます。 表示される情報は、関数のソース コードのドキュメント文字列によって異なりますが、既定値は含まれます。

Visual Studio エディターの署名のヘルプを示すスクリーンショット。

ヒント

署名ヘルプを無効にするには、 Tools>Options>Text Editor>Python>General に移動します。 [ ステートメントの完了>パラメーター情報 ] チェックを外します。

クイック情報

識別子の上にマウス ポインターを置くと、クイック インフォ ツールチップが表示されます。 識別子によっては、クイック情報に潜在的な値または型、使用可能なドキュメント、戻りの型、および定義の場所が表示される場合があります。

Visual Studio エディターのクイック ヒントの表示情報を示すスクリーンショット。

コードの色分け

コードの色分けでは、コード分析の情報を使用して、コードの変数、ステートメント、およびその他の部分に色を付けます。 モジュールまたはクラスを参照する変数は、関数やその他の値とは異なる色で表示される場合があります。 パラメーター名は、ローカル変数またはグローバル変数とは異なる色で表示される場合があります。 既定では、関数は太字で表示されません。

Visual Studio エディターのコードと構文の色分けを示すスクリーンショット。

色をカスタマイズするには、 ツール>Options>Environment>Fonts と Colors に移動します。 [ アイテムの表示 ] リストで、目的の Python エントリを変更します。

Visual Studio の [フォントと色] オプションを示すスクリーンショット。

コード スニペットを挿入する

コード スニペットは、キーボード ショートカットを使用して Tab を選択することでファイルに挿入できるコードの断片です。 Edit>IntelliSense>Insert Snippet コマンドと Surround With コマンドを使用して、 Python を選択し、目的のスニペットを選択することもできます。

たとえば、 class は、クラス定義を挿入するコード スニペットのショートカットです。 次のように入力すると、スニペットがオートコンプリート リストに表示 class

クラス ショートカットのコード スニペットを示すスクリーンショット。

Tab を選択すると、クラスの残りの部分が生成されます。 その後、名前とベースの一覧を入力し、 Tab キーを使用して強調表示されたフィールド間を移動し、 Enter キーを押して本文の入力を開始できます。

コード スニペットのうち、あなたが完了するべき部分を強調表示したスクリーンショット。

Edit>IntelliSense>Insert Code Snippet メニュー コマンドを使用する場合は、最初に Python を選択してから、目的のスニペットを選択します。

[コード スニペットの挿入] コマンドを使用してコード スニペットを選択する方法を示すスクリーンショット。

Edit>IntelliSense>Surround With コマンドを使用すると、選択した構造要素内のテキスト エディターに現在の選択範囲が配置されます。 次の例のようなコードがあるとします。

sum = 0
for x in range(1, 100):
    sum = sum + x

このコードを選び、囲む コマンドを選択すると、使用可能なスニペットの一覧が表示されます。 スニペット リストから def を選択すると、選択したコードが関数定義内に配置されます。 Tab キーを使用して、強調表示されている関数名と引数の間を移動できます。

コード スニペットに [Surround With] コマンドを使用する方法を示すスクリーンショット。

使用可能なスニペットを確認する

使用可能なコード スニペットは、 コード スニペット マネージャーで確認できます。 Tools>Code Snippets Manager からこの機能にアクセスし、言語として Python を選択します。

Visual Studio のコード スニペット マネージャーを示すスクリーンショット。

独自のスニペットを作成するには、「 チュートリアル: コード スニペットを作成する」を参照してください。

共有したい優れたコード スニペットを記述する場合は、gist に投稿して 、お知らせください。 Visual Studio の将来のリリースに含めることができます。

Visual Studio での Python のサポートには、ソース コードを使用できるライブラリなど、コード内をすばやく移動するためのいくつかの方法が用意されています。 ナビゲーション バー定義へ移動移動、およびすべての参照を検索するコマンドのソースコードを含むライブラリを見つけることができます。 Visual Studio オブジェクト ブラウザーを使用することもできます。

ナビゲーション バーは、各エディター ウィンドウの上部に表示され、2 レベルの定義の一覧が含まれています。 左側のドロップダウンには、現在のファイルに最上位レベルのクラスと関数の定義が含まれています。 右側のドロップダウンには、左側に表示されるスコープ内の定義の一覧が表示されます。 エディターで移動すると、リストが更新され、現在のコンテキストが表示されます。また、これらのリストからエントリを選択して直接ジャンプすることもできます。

Visual Studio エディターのナビゲーション バーを示すスクリーンショット。

ヒント

ナビゲーション バーを非表示にするには、 Tools>Options>Text Editor>Python>General に移動し、[ 設定>ナビゲーション バーをクリアします。

定義に移動

[ 定義へ移動] コマンドは、識別子 (関数名、クラス、変数など) の使用からソース コード定義の場所にすばやくジャンプします。 コマンドを呼び出すには、識別子を右クリックし、[ 定義に移動 ] を選択するか、識別子にキャレットを配置して F12 キーを押します。 このコマンドは、ソース コードが使用可能なコードと外部ライブラリ全体で機能します。 ライブラリのソース コードを使用できない場合、 定義に移動 すると、モジュール参照の関連する import ステートメントにジャンプするか、エラーが表示されます。

Visual Studio の [定義に移動] コマンドを示すスクリーンショット。

移動する

Edit>Go To コマンド (Ctrl+)、エディターに検索ボックスが表示され、任意の文字列を入力し、その文字列を含む関数、クラス、または変数を定義するコード内で一致する可能性のある一致を確認できます。 この機能は、[ 定義へ移動 ] と同様の機能を提供しますが、識別子を使用する必要はありません。

その識別子の定義に移動するには、任意の名前をダブルクリックするか、矢印キーを押しながら Enter キーを押して名前を選択 します

Visual Studio の [移動] コマンドを示すスクリーンショット。

[すべての参照の検索]

[ すべての参照の検索 ] 機能は、インポートや割り当てを含め、特定の識別子の定義と使用の両方を検出する便利な方法です。 コマンドを呼び出すには、識別子を右クリックして [ すべての参照の検索] を選択するか、識別子にキャレットを配置して Shift+F12 を選択します。 リスト内の項目をダブルクリックすると、その場所に移動します。

Visual Studio の [すべての参照の検索] の結果を示すスクリーンショット。