الحالة الغريبة لـ hash(-1) == hash(-2) في Python

2025-01-10

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

اقرأ المزيد