Python에서 hash(-1) == hash(-2)인 이상한 경우

2025-01-10

Reddit에서 Python에서 `hash(-1) == hash(-2)`인 이유에 대한 질문이 올라오면서 조사가 시작되었습니다. CPython 소스 코드를 조사한 결과, -1이 `PyObject_Hash` 함수에서 에러 표시기로 사용된다는 것을 알게 되었습니다. 따라서 계산 결과가 -1이면 -2로 변환됩니다. 이것은 Python의 이스터 에그가 아니라 CPython의 C 코드가 에러를 처리하는 방식 때문입니다.

더 보기