PyCharm 2026.1 ヘルプ

PyCharm の型ヒント

PyCharm は、スクリプト内のオブジェクトのタイプのインスペクションとチェックを支援するさまざまな手段を提供します。PyCharm は、typing モジュールと PEP 484(英語) で定義された形式を使用して、関数アノテーションと型コメントで型ヒントをサポートします。

型ヒントを通じて追加する型情報は、型推論、インスペクション、クイックドキュメント、インレイヒントの基盤となる型エンジンによって利用されます。

型ヒントを追加する

PyCharm は PEP 484(英語) でサポートされている型の追加方法をすべてサポートしていますが、インテンションアクションを通じて型ヒントを使用するのが最も便利です。使用するインタープリターに応じて、型はアノテーション(Python 3)またはコメント(Python 2)として追加されます。

  1. コード要素を選択します。

  2. Alt+Enter を押します。

  3. 型ヒントを追加 ... を選択します。

  4. 適切な場合は、Enter を押してアクションを完了するか、タイプを編集します。

サンプル

インテンションアクション

アノテーションの結果コード (Python 3)

変数

example of adding a type hint for a variable
example of adding a type hint for a variable (Python 3)

関数

example of adding a type hint for a function
example of adding a type hint for a function (Python 3)

クラス属性

example of adding a type hint for a class attribute
example of adding a type hint for a class attribute (Python 3)

サンプル

インテンションアクション

コメントの結果コード (Python 2)

変数

example of adding a type hint for a variable
example of adding a type hint for a variable (Python 2)

関数

example of adding a type hint for a function
example of adding a type hint for a function (Python 2)

クラス属性

example of adding a type hint for a class attribute
example of adding a type hint for a class attribute (Python 2)

Python スタブを使用して、変数、関数、クラスフィールドの型を指定することもできます。

アノテーションを使用して戻り値の型を指定する

Python 3 アノテーションを使用して、関数の戻り値の型にアノテーションを付けることができます。PyCharm が自動的に戻り値のアノテーションを挿入し、必要に応じて型を調整できます。

  1. 関数名にキャレットを置き、Alt+Enter を押します。

  2. 開いたインテンションアクションのリストで、アノテーションを使用して戻り値の型を指定するを選択します。

Specify return type using annotation

コメントを変換する

コメントベースの型ヒントの場合、PyCharm は、コメントベースの型ヒントを変数アノテーションに変換できるインテンションアクションを提案します。このインテンションには変数アノテーションに変換するという名前があり、次のように動作します。

from typing import List, Optional xs = [] # type: List[Optional[str]]
from typing import List, Optional xs: List[Optional[str]] = []

型ヒントを検証する

型ヒントを適用するときはいつでも、PyCharm は、サポートされている PEP に従ってタイプが正しく使用されているかどうかをチェックします。使用箇所エラーがある場合、対応する警告が表示され、推奨されるアクションが提案されます。以下は検証の例です。

検証エラー

推奨アクション

型宣言の重複。

incorrect type hint

いずれかの型宣言を削除します。

型宣言の引数の数は、関数の引数の数とは異なります。

too many arguments

引数の数を調整します。

アンパックを伴う型コメントは、対応するターゲットと一致しません。

incorrect type for unpacked variables

ターゲットフォーマットをチェックし、それに応じてタイプコメントを変更してください。

Callable パラメーターの構文が正しくありません。

Incorrect Callable format

推奨フォーマットを使用し、必要な角括弧を追加して Callable パラメーターをラップします。

代入式に予期しない型があります。

Unexpected type in an assignment expression

予想されるパターンに合うようにタイプを揃えます。

Final 変数に値を代入します。

Assigning a value to a Final variable

Final とアノテーションが付けられた変数を変更することはできません。変数の型を変更することを検討してください。

Final アノテーションが付けられたクラスを継承します。

Inheriting a final class

Final アノテーションを持つクラスを継承することはできません。別のクラスを作成することを検討してください。

@final で装飾されたメソッドのオーバーライド。

Overriding a final method

@final で装飾されたメソッドをオーバーライドすることはできません。別のメソッドを定義することを検討してください。

関数引数の型が正しくありません。

Function argument type validation

リストの代わりに辞書を foo() 関数に渡します。

TypedDict タイプのキーに間違ったタイプの値を割り当てる。

Type validation for a TypedDict class

year の値を int として指定します。

add_movie({'title': 'Blade Runner', 'year': 1982})

TypedDict タイプで間違ったキーを使用する:

Missing key, extra key error

型定義で指定されているようにキーを割り当てます。

add_movie({'title': 'Blade Runner', 'year': 1982})

装飾された関数の不適切な使用。PyCharm は、デコレーターのタイプに基づいて、装飾された関数のタイプを検証します。

Infer type of a decorated function

必要に応じて、関数 return を使用するデコレーターまたはステートメントを変更します。

# type: ignore または # noqa コメントを追加して、型検証の警告を抑制したり、欠落しているインポートステートメントを無視したりできます。

Ignore type validation

Python スタブ

Python スタブファイルを使用すると、Python 3 構文を使用して型ヒントを指定できます。これらのヒントは、インタープリターで使用されている Python バージョンに関係なく、Python ファイルで利用できます。

次の例では、スタブファイル (stubs.pyi) からの sample_function の型ヒントが Python ファイル (stubs.py) で使用可能になります。

スタブアナログが検出されたパッケージを使用している場合は、次のメッセージが表示されます。

The stub package inspection

スタブパッケージをインストールし、このメッセージを無視して現在インストールされているパッケージで作業を続行するか、プロジェクト設定でこの種のインスペクションを無効にすることができます。

Typeshed を使用する

Typeshed(英語) は、標準の Python ライブラリとさまざまなパッケージの型アノテーションが付いたファイルのセットです。Typeshed スタブは、型ヒントで定義された Python クラス、関数、モジュールの定義を提供します。PyCharm は、この情報を使用して、コード補完、インスペクション、その他のコードインサイト機能を向上させます。

PyCharm には Typeshed(英語) スタブがバンドルされています。使用可能な Typeshed スタブのリストは、ノード外部ライブラリ | <Python インタープリター> | Typeshed スタブのプロジェクトビューに表示されます。

バンドルされた Typeshed リポジトリを独自のバージョンでオーバーライドするには、次の手順を実行する

  1. スタブの一部またはすべてをプロジェクトのディレクトリにコピーします。

  2. ディレクトリのコンテキストメニューからディレクトリをマーク | ソースルートを選択して、ディレクトリをソースルートとしてマークします。

Python スケルトンリポジトリ https://github.com/JetBrains/python-skeletons(英語) は廃止予定です。

2026 年 5 月 11 日

関連ページ:

タイプエンジン

PyCharm は、型情報に依存するコード分析機能を実現するために型エンジンを利用しており、以下のような機能が含まれます。型推論、型関連診断とインスペクション、クイックドキュメント、推論された型に関するインレイヒント、推論された型に基づくコード補完の提案、デフォルトでは、PyCharm は独自の内蔵型エンジンを使用します。また、外部の型エンジンに切り替えて、大規模な Python コードベース向けに最適化された専用ツールに型解析を委譲することもできます。内蔵型エンジン:組み込みの型エンジンは、...

スタブ

PyCharm は、.pyi 拡張機能を備えた Python スタブファイルをサポートします。これらのファイルを使用すると、Python 2 と 3 の両方に Python 3 構文を使用して型ヒントを指定できます。独自の実装用のスタブファイルを作成するターゲット実装が存在するディレクトリに移動します。メインメニューからを選択し、次に Python ファイルを選択します(または、ショートカットを使用します)。新規 Python ファイルダイアログで、Python スタブを選択し、ファイル名を指定しま...

Python インタープリターを構成する

PyCharm の Python インタープリター:Python コードを PyCharm で動作させるには、少なくとも 1 つの Python インタープリターを設定する必要があります。Python インストールで利用可能なシステムインタープリターを使用できます。また、Virtualenv、pipenv、Poetry、uv、hatch、または conda の仮想環境を作成することもできます。仮想環境は、ベースインタープリターとインストールされたパッケージで構成されます。PyCharm Pro で...

パッケージのインストール、アンインストール、アップグレード

PyCharm は、特定の Python インタープリター用の Python パッケージをインストール、アンインストール、アップグレードする方法を提供します。これは、各プロジェクトに独自のパッケージセットがあることを意味し、これは Python 依存関係管理のベストプラクティスと見なされます。デフォルトでは、PyCharm はプロジェクトパッケージの管理に pip を使用します。conda 環境では、conda パッケージマネージャーを使用できます。PyCharm では、Python パッケージツー...

Python コードインサイト

コードインサイトは、自動補完、インテンションアクション、型推論、PyCharm のコード分析に関連するその他の手法に使用される一般的な名前です。構文のハイライト:PyCharm エディターでは、キーワード、コメント、パラメーター、型ヒント、その他の要素のハイライトが考慮されます。class Car: