Python/Utils

파이썬에서 상수(const) 기능을 사용하는 방법

jimmy_AI 2022. 10. 11. 20:01
반응형

C++, JAVA 등 다른 언어에서 const로 사용되는 기능인 상수 선언을

Python에서도 사용이 가능할까요?

 

아쉽게도 파이썬에서는 직접적으로 상수를 선언하는 기능을 제공하고 있지 않습니다.

 

대신, 값이 변하지 않는 const 기능을 간접적으로 사용할 수 있는 몇 가지 테크닉을 

정리해보도록 하겠습니다.

 

 

1. 함수로 선언

상수로 사용할 값을 변수가 아니라 함수로 선언하여 값 변경을 우회하는 방법입니다.

예를 들어, pi라는 값을 3.14로 선언하기 위해서 아래와 같이 함수로 구현할 수 있습니다.

def pi():
    return 3.14

 

선언한 값에 대하여 실제 사용 및 값 변경 시도 예시는 아래와 같습니다.

print(pi() + 2) # 5.14

pi() = 5 # SyntaxError: can't assign to function call

 

반응형

 

2. collections의 namedtuple 활용

collections 모듈의 namedtuple 메소드를 활용하면 상수를 간접적으로 선언이 가능합니다.

 

pi, e라는 두 개의 constant를 선언한 예시 코드는 다음과 같습니다.

이 경우에도 값 변경이 불가능한 점을 살펴볼 수 있습니다.

from collections import namedtuple

Constants = namedtuple('Constants', ['pi', 'e'])
constants = Constants(3.14, 2.718)
print(constants.pi) # 3.14

constants.pi = 5 # AttributeError: can't set attribute

 

출처 : https://stackoverflow.com/questions/2682745/how-do-i-create-a-constant-in-python

(더 다양한 상수 선언 방법들이 제시되어 있습니다.)

 

How do I create a constant in Python?

How do I declare a constant in Python? In Java, we do: public static final String CONST_NAME = "Name";

stackoverflow.com