باعتباري أحد مطوري لغة Python، واجهت مؤخرًا مشكلة غريبة تتمثل في عدم تكرار الحلقات في الكود الخاص بي كما توقعت. كانت لدي وظيفة كانت تتكرر عبر قائمة النطاقات الزمنية للتحقق مما إذا كان الطابع الزمني يقع ضمن أي من النطاقات.
بدا الكود الخاص بي مثل هذا:
بعد بعض التصحيح، لاحظت اختفاء المشكلة عندما قمت بتغيير generate_ranges()
لإرجاع قائمة بدلاً من تعبير المولد:
يبدو أن تعبير المولد كان يقدم بعض السلوكيات غير المتوقعة بين الحلقات. ومن خلال فرض التقييم في القائمة، فقد تم حل الغرابة.
لذلك، إذا رأيت في أي وقت مضى حلقات في كود Python الخاص بك لا تتكرر كما هو متوقع، فتحقق من وجود أي تعبيرات منشئة يمكن أن تسبب أخطاء خفية. يعد تحويلها إلى قوائم/صفوف قياسية طريقة سهلة لاستبعاد مشكلات التكرار.
اسمحوا لي أن أعرف إذا كان لديك أي أسئلة أخرى!