Skip to main content

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) or NamedTuple for grouped read-only data.
  • For configuration, load from environment variables once and expose as constants.

Next up in your learning path