PyCharm 2020.2ヘルプ

PyCharmの型ヒント

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

型ヒントを追加する

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

型ヒントを追加するには、次の手順を実行します。

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

  2. Alt+Enterを押します。

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

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

サンプルインテンション・アクションコメントの結果コード (Python 2)注釈の結果コード (Python 3)
変数
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 variable (Python 3)
関数
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 function (Python 3)
クラス属性
example of adding a type hint for a class attribute
example of adding a type hint for a class attribute (Python 2)
example of adding a type hint for a class attribute (Python 3)

Pythonスタブまたはコメントを使用して、変数、関数、およびクラスフィールドのタイプを指定することもできます。

コメントを使用して型を指定する

# type: コメントを使用して、ローカル変数と属性のタイプを指定します。

Type hinting attributes

コメントの変換

コメントベースの型ヒントの場合、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 クラスを継承することはできません。その種類を変更することを検討してください。
関数引数のタイプが正しくありません。
Literal type validation
intの代わりに Color タイプを使用してください。
TypedDict クラスの誤った使用箇所。
Type validation for the TypedDict class

次のように TypedDict オブジェクトを参照してください。

record_movie(Movie(title='Blade Runner', year=1982))

Pythonスタブ

PyCharmはPythonスタブファイル(英語)をサポートしているため、Python 2と3の両方に対してPython 3構文を使用して型ヒントを指定できます。

スタブファイルに型ヒントが記録されている場合は、それらのスタブを使用するコードで利用できるようになります。例: some_func_2 の次の型ヒントがPythonコードで使用可能になります。

type hints in stubs

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

The stub package inspection

スタブパッケージをインストールしたり、このメッセージを無視したり、現在インストールされているパッケージを使用したり、プロジェクト設定/環境設定の対応するインスペクションを無効にすることもできます。

Typeshed を使用する

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

PyCharmはへの切り替えされTypeshed(英語)、Pythonスタブの共通リポジトリ。PyCharmにバンドルされているTypeshedスタブは、プロジェクトビューの外部ライブラリ | <Pythonインタープリター> | Typeshed スタブノードに表示されます。PyCharmは現在、バンドルされたスタブの一部(つまり builtins.pyi , typing.pyiと他のいくつか)のみを使用していることに注意してください。

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

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

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

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

最終更新日: 2020年6月09日

関連ページ:

Python

PyCharmでPythonスクリプトを開発するには、Pythonをダウンロードしてインストールし、少なくとも1つのPython インタープリターを構成します。Windowsユーザーの場合、Windows用Pythonをインストールすることをお勧めします。サポートされるバージョン:Python 2:...

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

PyCharmは、特定のPythonインタープリターのPythonパッケージをインストール、アンインストール、およびアップグレードする方法を提供します。デフォルトでは、PyCharmはpipを使用してプロジェクトパッケージを管理します。Conda環境では、condaパッケージマネージャーを使用できま...

docstringのレガシー型構文

PyCharmはdocstringを使用してPythonで型を指定するためのレガシアプローチをサポートします。その際、サポートされているフォーマットは次のとおりです。reStructuredText、epytext、NumPy、Google、目的のドキュメントストリングフォーマットを選択するには、「...

setup.pyを作成して実行する

PyCharmは、モジュールの構築、配布、インストールを目的としたsetup.pyスクリプトの作成に役立つアクションを提供します。setup.pyが作成されると、対応するアクションが無効になりますsetup.py の作成プロジェクトツールウィンドウで、パッケージを選択します。次に、メインメニューから...