파이썬에도 JavaScript의 const와 같은 상수 선언 키워드가 있을까?

FeelsBotMan·2025년 1월 4일

파이썬에는 JavaScript의 const와 같은 상수 선언 키워드는 없다. 하지만, 상수처럼 사용할 변수를 선언하는 관례가 있다.


파이썬에서 상수 선언 관례

파이썬에서는 상수를 선언할 수 있는 특별한 문법이 없지만, 변수 이름을 모두 대문자로 작성하여 상수처럼 사용하는 것이 일반적인 관례이다. 이는 개발자 간의 암묵적 규칙으로, 상수로 선언된 변수는 변경하지 말라는 의미를 전달한다.

예시:

PI = 3.14159
MAX_CONNECTIONS = 100
API_KEY = "your-api-key-here"
  • PI, MAX_CONNECTIONS, API_KEY는 상수로 사용된다고 간주된다.
  • 하지만 문법적으로 값을 변경하는 것을 막을 수는 없다.
    PI = 3.14  # 변경 가능 (경고나 오류 없음)

상수를 엄격히 보호하는 방법

상수를 변경하지 못하도록 강제하려면, 다음과 같은 방법을 사용할 수 있다:

1. 클래스를 활용한 상수 선언

class Constants:
    PI = 3.14159
    MAX_CONNECTIONS = 100

# 상수처럼 사용
print(Constants.PI)

이 경우, Constants.PI는 변경할 수는 있지만, 관례적으로 상수처럼 사용된다.

2. 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  # 오류 발생 (상수 값을 변경하려고 시도)

3. 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) 같은 기능을 활용해 상수처럼 사용할 수 있다.

profile
안드로이드 페페

0개의 댓글