Python コードの編集Editing Python code

開発者は、コード エディターで多くの時間を費やすので、Visual Studio での Python のサポートは、生産性を向上させる機能を提供します。Developers spend much of their time in the code editor, so Python support in Visual Studio provides functionality to help you be more productive. 機能には、IntelliSense 構文の強調表示、オートコンプリート、署名ヘルプ、メソッドのオーバーライド、検索、ナビゲーションが含まれます。Features include IntelliSense syntax highlighting, auto-completion, signature help, method overrides, search, and navigation.

このトピックの内容In this topic:

Visual Studio でのコードの編集に関する全般的な説明については、「コード エディターとテキスト エディターでのコードの作成」をご覧ください。For general documentation on editing code in Visual Studio, see Writing Code in the Code and Text Editor. また、コードの特定のセクションに注意を集中するのに役立つ Visual Studio のアウトライン機能についての記事もご覧ください。Also see Outlining in Visual Studio, which helps you stay focused on particular sections of your code. Python のサポートには、Visual Studio オブジェクト ブラウザーの使用が含まれています ([表示] > [その他のウィンドウ] > [オブジェクト ブラウザー] を選択するか、Ctrl + W、J キーを押します)。各モジュールで定義されているクラスとそれらのクラスで定義されている関数を調べることができます。Python support includes using the Visual Studio Object Browser (View > Other Windows > Object Browser or Ctrl+W,J) for inspecting classes defined in each module and the functions defined in those classes.

また、エディターは Visual Studio の対話型のウィンドウと統合され、この 2 つ間で容易にコードを交換できます。The editor is also integrated with the interactive window in Visual Studio, making it easy to exchange code between the two. 詳細については、「チュートリアル ステップ 3: 対話型 REPL ウィンドウを使用する」と対話型ウィンドウの使用 - 対話型コマンドにコードを送信するに関する項目を参照してください。See Tutorial Step 3: Using the interactive REPL window and Using the interactive window - Send code to interactive command for details.

Python コードの編集の概要については、「Editing Python Code」 (Python コードの編集) (Microsoft Virtual Academy、2 分 30 秒) をご覧ください。For an introduction to editing Python code, see Editing Python Code (Microsoft Virtual Academy, 2m30s):

IntelliSenseIntelliSense

IntelliSense により、入力候補シグネチャ ヘルプクイック ヒントコードの色分け表示が提供されます。IntelliSense provides completions, signature help, quick info, and code coloring. パフォーマンスを向上するために、IntelliSense はプロジェクト内の各 Python 環境に対して生成される入力候補データベースを使用します。To improve performance, IntelliSense depends on the completion database that's generated for each Python environment in your project. パッケージを追加、削除、更新した場合はデータベースの更新が必要になる可能性があります。Databases may need refreshing if you add, remove, or update packages. データベースの状態は、[IntelliSense] タブの [Python Environments (Python 環境)] ウィンドウ (ソリューション エクスプローラーの兄弟ウィンドウ) に表示されます (「Python Environments」(Python 環境) を参照してください)。Database status is shown in the Python Environments window (a sibling of Solution Explorer) on the IntelliSense tab (see Python Environments).

入力候補Completions

入力候補は、エディター内の現在の場所に入力するのに適している可能性があるステートメント、識別子、その他の単語として表示されます。Completions appear as statements, identifiers, and other words that may be appropriately entered at the current location in the editor. 一覧に表示される項目はコンテキストに基づいており、誤った選択肢や不適切な選択肢を除くようにフィルター処理されています。What's shown in the list is based on context and is filtered to omit incorrect or distracting options. 入力候補は別のステートメント (import など) や演算子 (ピリオドを含む) を入力したときによく表示されますが、Ctrl + J、Space キーを押すことでいつでも表示できます。Completions are often triggered by typing different statements (such as import) and operators (including a period), but you can have them appear at anytime by typing Ctrl-J, Space.

メンバー入力候補

入力候補一覧が開いたら、方向キーまたはマウスを使用するか、入力を続けることによって目的の入力候補を検索できます。When a completion list is open, you can search for the completion you want using the arrow keys, the mouse, or by continuing to type. 多くの文字を入力するほど一覧が絞り込まれ、可能性の高い入力候補が表示されます。As you type more letters, the list is further filtered to show likely completions. 次のようなショートカットも使用できます。You can also use shortcuts such as:

  • 名前の先頭ではない文字を入力する ('parse' を入力して 'argparse' を検索するなど)Typing letters that are not at the start of the name, such as 'parse' to find 'argparse'
  • 単語の先頭の数文字のみを入力する ('abc' を入力して 'AbstractBaseClass' を検索する、'air' を入力して 'as_integer_ratio' を検索するなど)Typing only letters that are at the start of words, such as 'abc' to find 'AbstractBaseClass' or 'air' to find 'as_integer_ratio'
  • 文字をスキップする ('b64' を入力して 'base64' を検索するなど)Skipping letters, such as 'b64' to find 'base64'

以下に、いくつかの例を示します。Some examples:

フィルター処理されたメンバー入力候補

変数または値の後にピリオドを入力するとメンバー入力候補が自動的に表示され、可能性がある型のメソッドと属性が表示されます。Member completions appear automatically when you type a period after a variable or value, along with the methods and attributes of the potential types. 複数の型の可能性がある変数の場合は、すべての型のすべての候補が一覧に表示され、各入力候補がどの型でサポートされるかを示した追加情報も表示されます。If a variable could be more than one type, the list includes all possibilities from all types, with extra information to indicate which types support each completion. 入力候補がすべての型でサポートされる場合は、注釈なしで表示されます。Where a completion is supported by all possible types, it is shown without annotation.

複数の型のメンバー入力候補

既定では、"dunder" メンバー (先頭および末尾にダブル アンダースコアが付いたメンバー) は表示されません。By default, "dunder" members (members beginning and ending with a double underscore) are not shown. 一般に、このようなメンバーに直接アクセスしてはいけません。In general, such members should not be accessed directly. しかし、必要な場合は、先頭に二重アンダー スコアを入力すると、これらの入力候補が一覧に追加されます。If you need one, however, typing the leading double underscore adds these completions to the list:

プライベートのメンバー入力候補

import および from ... import ステートメントでは、インポートできるモジュールの一覧が表示されます。The import and from ... import statements display a list of modules that can be imported. from ... import を使用すると、一覧には指定したモジュールからインポートできるメンバーが含まれています。With from ... import, the list includes members that can be imported from the specified module.

インポートの入力候補

raise および except ステートメントでは、エラーの種類として可能性があるクラスの一覧が表示されます。The raise and except statements display lists of classes likely to be error types. この一覧にはすべてのユーザー定義例外は含まれていない可能性がありますが、入力に適した組み込みの例外をすばやく見つけるのに役立ちます。The list may not include all user-defined exceptions, but helps you find suitable built-in exceptions quickly:

例外の入力候補

@ を入力するとデコレーターが開始され、可能性があるデコレーターが表示されます。Typing @ starts a decorator and shows potential decorators. これらの項目の多くはデコレーターとして使用できないため、ライブラリのドキュメントを確認して、どれを使用するかを判断する必要があります。Many of these items aren't usable as decorators; check the library documentation to determine which to use.

デコレーターの入力候補

ヒント

入力候補の動作は、[ツール] > [オプション] > [テキスト エディター] > [Python] > [詳細設定] で構成できます。You can configure the behavior of completions through Tools > Options > Text Editor > Python > Advanced". この設定の [Filter list based on search string (検索文字列に基づいて一覧をフィルター処理する)] では、入力の際に入力候補がフィルター処理されます (既定ではオンになっています)。また、[Member completion displays intersection of members (メンバー入力候補にメンバーの積集合を表示する)] では、可能性のあるすべての型でサポートされている入力候補のみが表示されます (既定ではオフになっています)。Among these, Filter list based on search string: applies filtering of completion suggestions as you type (default is checked), and Member completion displays intersection of members shows only completions that are supported by all possible types (default is unchecked). Options - completion results」(オプション - メンバー入力候補の結果) を参照してください。See Options - completion results.

シグネチャ ヘルプSignature help

関数を呼び出すコードの作成中に始め ( を入力するとシグネチャ ヘルプが表示され、利用できるドキュメントとパラメーター情報が表示されます。When writing code that calls a function, signature help appears when you type the opening ( and displays available documentation and parameter information. これは関数呼び出し内で Ctrl + Shift + Space キーを押して表示することもできます。You can also make it appear with Ctrl+Shift+Space inside a function call. 表示される情報は関数のソース コード内のドキュメント文字列によって異なりますが、すべての既定値が含まれます。The information displayed depends on the documentation strings in the function's source code, but includes any default values.

シグネチャ ヘルプ

ヒント

シグネチャ ヘルプを無効にするには、[ツール] > [オプション] > [テキスト エディター] > [Python] > [全般] に移動し、[ステートメント入力候補] > [パラメーター情報] をオフにします。To disable signature help, go to Tools > Options > Text Editor > Python > General and clear Statement completion > Parameter information.

クイック ヒントQuick info

識別子にマウス ポインターを置くと、クイック ヒントが表示されます。Hovering the mouse pointer over an identifier displays a Quick Info tooltip. クイック ヒントには、識別子に応じて、可能性のある値または型、利用できるドキュメント、戻り値の型、定義の場所が表示されます。Depending on the identifier, Quick Info may display the potential values or types, any available documentation, return types and, definition locations:

クイック ヒント

コードの色分け表示Code coloring

コードの色分け表示は、コード分析の情報を使用して、変数、ステートメント、その他のコード部分を色分けして示します。Code coloring uses information from code analysis to colors variables, statements, and other parts of your code. たとえば、モジュールまたはクラスを参照する変数を関数やその他の値とは異なる色で表示したり、パラメーター名をローカル変数やグローバル変数とは異なる色で表示したりできますFor example, variables that refer to modules or classes may be shown in a different color than functions or other values, and parameter names appear in a different color than local or global variables. (既定では、関数は太字では表示されません)。(By default, functions are not shown in bold):

コードの色分け表示

色をカスタマイズするには、[ツール] > [オプション] > [環境] > [フォントおよび色] に移動し、[表示アイテム] の一覧で Python のエントリを変更します。To customize the colors, go to Tools > Options > Environment > Fonts and Colors and modify the Python entries in the Display items list:

[フォントおよび色] のオプション

ヒント

コードの色分け表示を無効にするには、[ツール] > [オプション] > [テキスト エディター] > [Python] > [詳細設定] に移動し、[その他のオプション] > [Color names based on type (種類に基づく色の名前)] をオフにします。To disable code coloring, go to Tools > Options > Text Editor > Python > Advanced and clear Miscellaneous Options > Color names based on type. Options - Miscellaneous Options」(オプション ∸ その他のオプション) を参照してください。See Options - Miscellaneous Options.

コード スニペットCode snippets

コード スニペットは、ショートカットを入力して Tab キーを押すか、[編集] > [IntelliSense] > [コード スニペットの挿入] [ブロックの挿入] コマンドを使用することでファイルに挿入できるコード フラグメントです。Code snippets are fragments of code that can be inserted into your files by typing a shortcut and pressing Tab, or using the Edit > IntelliSense > Insert Code Snippet Surround With commands. たとえば、class を入力した後で Tab キーを押すと、クラスの残りの部分が生成されます。For example, typing class followed by the Tab key generates the rest of the class. 強調表示されたフィールド間を Tab キーで移動して名前と基底クラスのリストを上書きし、Enter キーを押して本文の入力を開始できます。You can type over the name and bases list, moving between the highlighted fields with Tab, then press Enter to begin typing the body.

コード スニペット

利用可能なコード スニペットは、コード スニペット マネージャーで確認できます ([ツール] > [コード スニペット マネージャー]) を選択し、言語として [Python] を選択します。You can see the available code snippets in the Code Snippets Manager (Tools > Code Snippets Manager), selecting Python as the language:

コード スニペット マネージャー

独自のスニペットの作成方法については、「チュートリアル: コード スニペットを作成する」をご覧ください。To create your own snippets, see Walkthrough: Creating a Code Snippet.

便利なコード スニペットを作成したので共有したいとお考えの場合は、ぜひ gist に投稿してマイクロソフトまでお知らせくださいIf you write a great code snippet that you'd like to share, feel free to post it in a gist and let us know. Visual Studio の将来のリリースに含めさせていただく可能性があります。We may be able to include it in a future release of Visual Studio.

Visual Studio の Python のサポートとして、ソース コードが提供されているライブラリ、ナビゲーション バー[定義へ移動][移動][すべての参照の検索] など、コード内のナビゲーションを迅速にするためのさまざまな手段が用意されています。Python support in Visual Studio provides several means to quickly navigate within your code, including libraries for which source code is available: the navigation bar, Go To Definition, Navigate To, and Find All References. また、Visual Studio のオブジェクト ブラウザーも使用できます。You can also use the Visual Studio Object Browser.

ナビゲーション バーは各エディター ウィンドウの上部に表示され、2 つのレベルの定義リストを含みます。The navigation bar is displayed at the top of each editor window and includes a two-level list of definitions. 左側のドロップダウン リストには、現在のファイル内の最上位のクラスと関数の定義が表示されます。右側のドロップダウン リストには、左側に表示されているスコープ内の定義のリストが表示されます。The left drop-down contains top-level class and function definitions in the current file; the right drop-down displays a list of definitions within the scope shown in the left. エディター内を移動するとこれらのリストが現在のコンテキストを示すように更新され、リストからエントリを選択してそのエントリに直接ジャンプすることもできます。As you move around in the editor, the lists update to show your current context, and you can also select an entry from these lists to jump directly to in.

ナビゲーション バー

ヒント

ナビゲーション バーを非表示にするには、[ツール] > [オプション] > [テキスト エディター] > [Python] > [全般] を選択し、[設定] > [ナビゲーション バー] をオフにします。To hide the navigation bar, go to Tools > Options > Text Editor > Python > General and clear Settings > Navigation bar.

[定義へ移動]Go To Definition

[定義へ移動] を使用すると、識別子 (関数名、クラス、変数など) の使用場所から、その識別子が定義されているソース コードにすばやくジャンプできます。Go To Definition quickly jumps from the use of an identifier (such as a function name, class, or variable), to the source code where it's defined. これは、識別子を右クリックして [定義へ移動] を選択するか、識別子にキャレットを置いて F12 キーを押すと起動されます。You invoke it by right-clicking an identifier and selecting Go To Definition or, by placing the caret in the identifier and pressing F12. この機能は、ソース コードが利用可能ならばコードと外部ライブラリ全体で機能します。It works across your code and external libraries provided that source code is available. ライブラリのソース コードを利用できない場合に [定義へ移動] を使用すると、モジュール参照の関連する import ステートメントにジャンプするか、エラーが表示されます。If library source code is not available, Go To Definition jumps to the relevant import statement for a module reference, or display an error.

[定義へ移動]

[編集] > [移動] コマンド (Ctrl + コンマ キー) を実行すると、エディター内に検索ボックスが表示されます。ボックスに任意の文字列を入力すると、その文字列を含む関数、クラス、変数を定義しているコード内の箇所が表示されます。The Edit > Navigate To... command (Ctrl-comma) displays a search box in the editor where you can type any string and see possible matches in your code that defines a function, class, or variable containing that string. この機能は [定義へ移動] の機能と似ていますが、識別子の使用場所を探す必要がありません。This feature provides a similar capability as Go To Definition but without having to locate a use of an identifier.

任意の名前をダブルクリックするか、方向キーで選択して Enter キーを押すと、その識別子の定義に移動します。Double-clicking any name, or selecting with arrow keys and Enter, navigates to the definition of that identifier.

[移動]

[すべての参照の検索]Find All References

[すべての参照の検索]は、特定の識別子の定義場所と使用場所の両方 (インポートと代入を含む) を見つけるのに便利な方法です。Find All References is a helpful way of discovering where any given identifier is both defined and used, including imports and assignments. これは、識別子を右クリックして [すべての参照の検索] を選択するか、識別子にキャレットを置いて Shift + F12 キーを押すと起動されます。You invoke it by right-clicking an identifier and selecting Find All References, or by placing the caret in the identifier and pressing Shift+F12. 一覧内の項目をダブルクリックすると、その場所に移動します。Double-clicking an item in the list navigates to its location.

[すべての参照の検索] の結果