Python의 미리 선언된 '상수' 6개는 모두 다르게 동작한다
Python's pre-declared constants are kinda weird
Python에는 True, False, None, __debug__, Ellipsis(또는 ...), NotImplemented라는 6개의 미리 선언된 '상수'가 있습니다. 그런데 이들은 각각 미묘하게 다른 방식으로 동작합니다. True, False, None은 키워드라서 식별자로 취급되지 않지만, __debug__는 일반 식별자임에도 할당이 금지된 유일한 이름입니다. Ellipsis와 NotImplemented는 실제로는 일반 내장(builtin)이어서 전역 변수로 가릴 수 있습니다. 또한 builtins 모듈의 속성을 변경하면 True, False, None, __debug__의 값은 바뀌지 않지만 Ellipsis와 NotImplemented는 바뀝니다. 이 글은 각 상수의 특이한 동작과 그 이유에 대한 궁금증을 탐구합니다.
그래서 어떤 의미에서 ...는 진짜 상수이지만 Ellipsis는 그렇지 않습니다. 이상하죠?