L'étrange cas du hash(-1) == hash(-2) en Python
2025-01-10
Une question sur Reddit concernant la raison pour laquelle `hash(-1) == hash(-2)` en Python a déclenché une enquête. En plongeant dans le code source de CPython, l'auteur a découvert que -1 est utilisé comme indicateur d'erreur dans la fonction `PyObject_Hash`. Ainsi, lorsque le hachage calculé est -1, il est converti en -2. Ce n'est pas un easter egg de Python, mais une particularité de la façon dont le code C de CPython gère les erreurs.