型ヒント(typing)で 定数 を指定する方法
typingモジュール から Final をインポートし、定数の型を Final で括ります。Final を使用するには、Python 3.8 以上のバージョンが必要です。from typing import Final
定数名: Final[<定数の型>] = <定数値>
サンプルコード
次のサンプルコードは 文字列、整数、浮動小数点数 の定数を定義しています。from typing import Final
# 文字列型の定数
URL: Final[str] = 'https://www.curict.com/'
# 整数型の定数
MAX_LENGTH: Final[int] = 20
# 浮動小数点数型の定数
PI: Final[float] = 3.14
アノテーション(annotation) と 型ヒント(typing) について
アノテーション はコードの可読性を向上させるために使用するもので、変数、クラス属性、関数のパラメータや返り値に ラベル を記述できます。アノテーションは実行時に無視されるため自由に使用できますが、慣例として型情報を記述します。型情報の書式は PEP 484 で規定されており、typingモジュールを使用すると、規定通りに型ヒントの指定ができます。
定数の型ヒントは後に PEP 591 で規定され、Python 3.8 よりサポートされています。
型のチェック方法
アノテーションは実行時に無視されます。定数値の変更も可能で、エラーも発生しません。エラーを検出するには mypy など、型ヒントを利用したチェックツールを使用します。
次の図は Visual Studio Code と mypy を使用して型チェックをしています。定数に対して値の代入を行っているため、エラーが発生しています。

参考資料
- Python公式ドキュメント - typing --- 型ヒントのサポート
- PEP公式ドキュメント - PEP 3107 – Function Annotations
- PEP公式ドキュメント - PEP 484 – Type Hints
- PEP公式ドキュメント - PEP 526 – Syntax for Variable Annotations
- PEP公式ドキュメント - PEP 591 – Adding a final qualifier to typing
検証環境
- Python 3.11.3 (tags/v3.11.3:f3909b8, Apr 4 2023, 23:49:59) [MSC v.1934 64 bit (AMD64)] on win32
- Visual Studio Code Version: 1.84.2 (user setup)
- Microsoft Windows 10 Enterprise Version 22H2 OS Build 19045.3570 Experience: Windows Feature Experience Pack 1000.19052.1000.0