PythonのFinal
は、型ヒントを使用して定数や変更できない属性を宣言するためのものです。これはPEP 591で議論され、Python 3.8から追加されました。
定数の宣言
Final
を使用して定数を宣言することができます。以下に例を示します。
from typing import Final
a: Final[int] = 0
a = 1 # エラー: Cannot assign to final name "a"
このコードでは、a
を定数として宣言し、その後でa
に新しい値を代入しようとするとエラーが発生します。
属性の宣言
また、Final
を使用してクラスの属性を変更不可能にすることもできます。以下に例を示します。
from typing import Final
class ClsA:
attr_a: Final[int] # エラー: Final name must be initialized with a value
class ClsB:
attr_b: Final[int]
def __init__(self, attr_b):
self.attr_b = attr_b
obj_b = ClsB(0)
obj_b.attr_b = 1 # エラー: Cannot assign to final attribute "attr_b"
このコードでは、ClsA
のattr_a
は初期化されていないためエラーが発生します。一方、ClsB
のattr_b
は初期化されており、その後でattr_b
に新しい値を代入しようとするとエラーが発生します。
以上がPythonのFinal
についての基本的な説明です。この機能を理解し、適切に使用することで、Pythonコードの品質を向上させることができます。