عند NotImplemented تُستعمل القيمة الافتراضية؛ الصفر تقدير معاد هنا. [1] [2] [3]
الخلاصة السريعة
لا؛ النتيجة تتبع الافتراضي هنا. [1] [2] [3]
- عند NotImplemented تُستعمل القيمة الافتراضية؛ الصفر تقدير معاد هنا. [1] [2] [3]
- على CPython 3.12.14، الصنف NoEstimate يعرّف دالة __length_hint__ تعيد NotImplemented؛ لم نعرّف __len__ أو __iter__. [1] [2] [3]
- own=NoEstimate()؛ length_hint(own,7) تعيد 7، بينما length_hint(own) تعيد الافتراضي 0. [1] [2] [3]
- الواجهة تمرر default إلى PyObject_LengthHint؛ مسار NotImplemented يعيد الافتراضي، ومسار العدد صفر يعيد الصفر نفسه. [1] [2] [3]
- تحكم: دالة __length_hint__ في ZeroEstimate تعيد 0؛ control=ZeroEstimate()؛ length_hint(control,7) تظل 0. لا نعد عناصر؛ الصفر هنا نتيجة الدالة، وليس إثباتًا أن الكائن فارغ. [1] [2] [3]
الافتراضي
عند NotImplemented تُستعمل القيمة الافتراضية؛ الصفر تقدير معاد هنا. [1] [2] [3]
تقدير غائب
على CPython 3.12.14، الصنف NoEstimate يعرّف دالة __length_hint__ تعيد NotImplemented؛ لم نعرّف __len__ أو __iter__. [1] [2] [3]
تبديل الافتراضي
own=NoEstimate()؛ length_hint(own,7) تعيد 7، بينما length_hint(own) تعيد الافتراضي 0. [1] [2] [3]
from operator import length_hint class NoEstimate: def __length_hint__(self):return NotImplemented own=NoEstimate() print(length_hint(own,7),length_hint(own)) [1] [2] [3]

الصفر والتحكم
الواجهة تمرر default إلى PyObject_LengthHint؛ مسار NotImplemented يعيد الافتراضي، ومسار العدد صفر يعيد الصفر نفسه. [1] [2] [3]
class ZeroEstimate: def __length_hint__(self):return 0 control=ZeroEstimate() print(length_hint(control,7),length_hint(control)) [1] [2] [3]
تحكم: دالة __length_hint__ في ZeroEstimate تعيد 0؛ control=ZeroEstimate()؛ length_hint(control,7) تظل 0. لا نعد عناصر؛ الصفر هنا نتيجة الدالة، وليس إثباتًا أن الكائن فارغ. [1] [2] [3]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
