اختبار الفئة ليس تجربة اجتياز. [1] [2]
الخلاصة السريعة
قد يعطي فحص abc.Iterable نتيجة False لكائن ينجح اجتيازه عبر __getitem__. [1] [2]
المثال
from collections import abc class C: def __getitem__(self,i): if i>=2:raise IndexError return i+4 c=C() print(isinstance(c,abc.Iterable)) print(list(c))
المخرجات: False ثم [4, 5]. [1] [2]
لماذا يختلف الفحصان؟
يتعرف فحص Iterable على التسجيل أو __iter__، ولا يلتقط الفئات التي تجتاز باستخدام __getitem__ وحدها. يفحص خطاف الفئة المثبت __iter__. [1] [2]
في الاجتياز تنتج فئتنا القيمتين؛ لم نسجلها. [1] [2]

حدود النتيجة
دالتنا تحدد القيم والنهاية؛ لا نعمم نجاحها على كل تعريف لـ__getitem__. [1] [2]
المراجع
- Python: collections.abc وIterable
- CPython 3.12.14: _collections_abc.py
- موضوع تك: لغة بايثون — مفردات
- موضوع تك: تطبيقات بايثون — مفردات
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
