تقنية

check_circular في بايثون: هل False يحل دورة القائمة؟

في المثال، تعطيل فحص الدورة يعطي RecursionError.
دورة تفشل دون الفحص.

check_circular=False يعطل فحص الدورة؛ لا يصلح القائمة الدورية. [1]

الخلاصة السريعة

لا؛ في مثالنا يفشل الترميز مع تعطيل الفحص أيضًا. [1]

  • check_circular=False يعطل فحص الدورة؛ لا يصلح القائمة الدورية. [1]
  • التوثيق يذكر RecursionError أو نتيجة أسوأ عند وجود دورة دون الفحص. [1]
  • مثال مؤلف على CPython 3.12.14: cycle أدناه تعود إلى نفسها؛ مع التعطيل يظهر RecursionError. [1]
  • في المثال، الفحص الافتراضي يطلق ValueError؛ بعد الخطأ تبقى cycle[0] is cycle صحيحة. [1]
  • تحكم: control=[[]] بلا دورة؛ يطابق الخرج [[]] مع الفحص ودونه تجميعًا مستقلًا، ويبقى المدخلان. [1]

تعطيل الفحص

check_circular=False يعطل فحص الدورة؛ لا يصلح القائمة الدورية. [1]

حدود النتيجة

التوثيق يذكر RecursionError أو نتيجة أسوأ عند وجود دورة دون الفحص. [1]

قائمة تعود إلى نفسها

مثال مؤلف على CPython 3.12.14: cycle أدناه تعود إلى نفسها؛ مع التعطيل يظهر RecursionError. [1]

import json cycle=[] cycle.append(cycle) json.dumps(cycle,check_circular=False) [1]

التحكم بلا دورة يعطي [[]] مع الفحص ودونه.
تحكم بلا دورة ينجح.

الفحص الافتراضي والتحكم

في المثال، الفحص الافتراضي يطلق ValueError؛ بعد الخطأ تبقى cycle[0] is cycle صحيحة. [1]

control=[[]] json.dumps(control,check_circular=False) [1]

تحكم: control=[[]] بلا دورة؛ يطابق الخرج [[]] مع الفحص ودونه تجميعًا مستقلًا، ويبقى المدخلان. [1]

المراجع

  1. Python JSON

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.