\

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"

このコードでは、ClsAattr_aは初期化されていないためエラーが発生します。一方、ClsBattr_bは初期化されており、その後でattr_bに新しい値を代入しようとするとエラーが発生します。

以上がPythonのFinalについての基本的な説明です。この機能を理解し、適切に使用することで、Pythonコードの品質を向上させることができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です