Python Constants Best Practices
Satellite · Variables
Python Constants
Use uppercase naming, module scoping, and typing helpers to treat values as constants even without language-level enforcement.
Conventions
MAX_RETRIES = 3
API_BASE_URL = "https://api.example.com"
- Define constants at module level.
- Use uppercase snake case.
- Group related constants in dedicated modules (e.g.,
settings.py).
Typing enforcement
from typing import Final
MAX_CONNECTIONS: Final = 100
Static analyzers (mypy, pyright) flag reassignment when using Final.
Runtime strategies
- Avoid reassigning constants by convention.
- Use
dataclasses.dataclass(frozen=True)orNamedTuplefor grouped read-only data. - For configuration, load from environment variables once and expose as constants.