الحالة الغريبة لـ hash(-1) == hash(-2) في Python
2025-01-10
أثار سؤال على Reddit حول سبب تساوي `hash(-1)` و `hash(-2)` في Python تحقيقًا. من خلال الغوص في شفرة المصدر لـ CPython، اكتشف الكاتب أن -1 يستخدم كمؤشر خطأ في دالة `PyObject_Hash`. لذلك، عندما تكون قيمة التجزئة المحسوبة هي -1، يتم تحويلها إلى -2. هذا ليس خطأً في Python، بل هو غرابة في كيفية تعامل شفرة C الخاصة بـ CPython مع الأخطاء.
التطوير
تحليل شفرة المصدر