PyCharm 2026.1 Help

PyCharm の型ヒント

PyCharm は、スクリプト内のオブジェクトの型を調査・確認するためのさまざまな手段を提供します。 PyCharm は、 typing モジュールと PEP 484で定義された形式を使用して、関数のアノテーションや型コメントにおける 型ヒントをサポートします。

型ヒントを追加する

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

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

  2. Alt+Enter を押す。

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

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

サンプル

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

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

変数

変数に型ヒントを追加する例
変数に型ヒントを追加する例 (Python 3)

関数

関数に型ヒントを追加する例
関数に型ヒントを追加する例 (Python 3)

クラス属性

クラス属性に型ヒントを追加する例
クラス属性に型ヒントを追加する例 (Python 3)

サンプル

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

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

変数

変数に型ヒントを追加する例
変数に型ヒントを追加する例 (Python 2)

関数

関数に型ヒントを追加する例
関数に型ヒントを追加する例 (Python 2)

クラス属性

クラス属性に型ヒントを追加する例
クラス属性に型ヒントを追加する例 (Python 2)

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

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

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

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

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

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

コメントを変換する

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

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

型ヒントを検証する

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

検証エラー

推奨アクション

型宣言の重複。

不正なタイプのヒント

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

型宣言内の引数の数が関数の引数の数と異なります。

引数が多すぎます

引数の数を調整します。

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

アンパックされた変数の型が正しくない

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

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

不正な呼び出し可能な形式

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

代入式で予期しない型です。

代入式の中の予期しない型

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

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

Final 変数に値を代入する

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

Final として注釈されたクラスを継承しています。

最終クラスを継承する

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

@final で装飾されたメソッドをオーバーライドしています。

最終メソッドのオーバーライド

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

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

関数の引数の型の検証

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

TypedDict 型の鍵に誤った型の値を代入しています。

TypedDict クラスの型検証

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

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

TypedDict 型で間違ったキーを使用する:

鍵が不足、余分な鍵エラー

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

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

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

装飾された関数の型を推測する

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

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

型の検証を無視する

Python スタブ

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

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

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

スタブパッケージのインスペクション

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

Typeshed を使用する

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

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

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

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

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

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

2026 年 6 月 1 日