Final indicates a variable cannot be reassigned (constant).
1from typing import Final23PI: Final = 3.141594MAX_SIZE: Final = 100056# PI = 3.14 # Type error: cannot reassign78CLASS_CONSTANT: Final[str] = "constant"910# Final with class attributes11class Config:12 API_VERSION: Final = "v1"13 MAX_RETRIES: Final = 31415Config.API_VERSION # OK to read16# Config.API_VERSION = "v2" # Type error!1718# Final in function19def get_config():20 DEBUG: Final = True # Local constant21 return DEBUG2223# Final with Literal24from typing import Literal2526STATUS_ACTIVE: Final = "active"
Final vs ClassVar:
Final: cannot reassign.ClassVar: class-level, not instance attribute.ClassVar[Final[int]] = 42.Runtime: Final is ignored — no enforcement.