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

FeelsBotMan·2025년 1월 4일
0

파이썬에는 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개의 댓글