Search

'상수가 없는 파이썬'에 해당되는 글 1건

  1. 2009/04/21 [파이썬 일기] #4.2.1 파이썬에는 상수가 없다!

주류 프로그래밍 언어인 C/C++, C#, Java와 같은 프로그램 언어에서는 데이터를 변수(Variable) 또는 상수(Constant)에 담도록 하고 있다. 상수는 프로그램이 시작될 때부터 종료될 때까지 어떤 코드로도 바꿀 수 없지만, 변수는 바꿀 수 있다. 상수는 가변/불변 객체와는 아무 관계가 없다. 가변/불변 객체는 변수의 "값"을 바꿀 수 있느냐 없느냐의 문제이기 때문이다. 어떤 변수가 불변 객체일 때, 그 값의 일부 변경하는 것은 불가능하지만 새로운 객체를 할당하면 완전히 새로운 값을 가질 수 있다. 하지만 상수는 객체를 새로 할당하는 짓(?)조차 허용하지 않는다.

그.런.데.

슬픈 일이지만 파이썬에서는 다음의 내장 상수(Built-in Constants) 외에는 프로그래머가 따로 상수를 정의할 수 없다.

  • False : bool 형의 거짓 값.
  • True : bool 형의 참값
  • None : 이름 그대로 아무 것도 없음을 나타낸다. a = None 이라고 하면 a는 비어 있는 상태가 된다.
  • NotImplemented : 구현되지 않았음. 사실 지금으로써는 이게 왜 필요한지 잘 이해가 안 간다. 나중에 알게 되면 다시 기록을 해야겠다.
  • Ellipsis : 생략 기호. 슬라이싱 구문에서 사용한다고 하는데, 아직 정체를 잘 모르겠다. 언젠가는 다시 만날 일이 있을 것이다.
  • __debug__ : 파이썬이 –O로 시작하면 이 상수는 참(true)값을 가진다. 디버깅 코드를 넣을 때에는 __debug__를 사용해야겠다.

사용자 정의 상수를 허용하지 않는 이유는 잘 모르겠다. 아마 귀도 형님의 깊은 뜻이 없기야 할까마는, 꼭 언어 설계자의 이런 특이 취향 때문에 아쉬워해야 하는 것은 항상 프로그래머들이다.(Java도 unsigned가 없어서 내가 얼마나 고생했는데!)

저작자 표시 비영리 변경 금지