파이썬에는 JavaScript의 const
와 같은 상수 선언 키워드는 없다. 하지만, 상수처럼 사용할 변수를 선언하는 관례가 있다.
파이썬에서는 상수를 선언할 수 있는 특별한 문법이 없지만, 변수 이름을 모두 대문자로 작성하여 상수처럼 사용하는 것이 일반적인 관례이다. 이는 개발자 간의 암묵적 규칙으로, 상수로 선언된 변수는 변경하지 말라는 의미를 전달한다.
PI = 3.14159
MAX_CONNECTIONS = 100
API_KEY = "your-api-key-here"
PI
, MAX_CONNECTIONS
, API_KEY
는 상수로 사용된다고 간주된다.PI = 3.14 # 변경 가능 (경고나 오류 없음)
상수를 변경하지 못하도록 강제하려면, 다음과 같은 방법을 사용할 수 있다:
class Constants:
PI = 3.14159
MAX_CONNECTIONS = 100
# 상수처럼 사용
print(Constants.PI)
이 경우, Constants.PI
는 변경할 수는 있지만, 관례적으로 상수처럼 사용된다.
frozen
데이터 구조 사용 (e.g., frozen dataclass
)Python 3.8+에서는 @dataclass(frozen=True)
를 사용하여 상수 같은 동작을 구현할 수 있다:
from dataclasses import dataclass
@dataclass(frozen=True)
class Constants:
PI: float = 3.14159
MAX_CONNECTIONS: int = 100
# 상수처럼 사용
constants = Constants()
print(constants.PI)
# constants.PI = 3.14 # 오류 발생 (상수 값을 변경하려고 시도)
typing.Final
사용Python 3.8+에서는 Final
을 통해 상수임을 표현할 수 있다:
from typing import Final
PI: Final = 3.14159
MAX_CONNECTIONS: Final = 100
# PI = 3.14 # MyPy를 사용하면 경고 발생 (런타임에서는 오류 없음)
파이썬에서 상수를 선언하는 공식 키워드는 없지만, 대문자 변수명을 사용하거나 Final
또는 @dataclass(frozen=True)
같은 기능을 활용해 상수처럼 사용할 수 있다.