maxlen تحدد الطول المحتفظ به؛ الصفر لا يمنع قراءة مولدنا المحدود هنا. [1]
الخلاصة السريعة
لا؛ يبقى deque فارغًا بعد استنفاد المولد في التجربة. [1]
- maxlen تحدد الطول المحتفظ به؛ الصفر لا يمنع قراءة مولدنا المحدود هنا. [1]
- ينشئ deque محتواه من iterable؛ سجل seen يضاف إليه قبل كل yield في مثالنا. [1]
- على CPython 3.12.14، مولدنا يعطي 2،5،8؛ نبني منه deque بالسعة maxlen=0. [1]
- الناتج []، لكن seen يصبح [2,5,8]؛ next(g,"done") يعيد done: لا تبقى قيمة. [1]
- تحكم بمولد جديد: maxlen=1 تحتفظ بـ[8] وتقرأ القيم الثلاث أيضًا؛ نفاد المدخل مختلف عن عدد العناصر المحتفظ بها. [1]
حد الطول
maxlen تحدد الطول المحتفظ به؛ الصفر لا يمنع قراءة مولدنا المحدود هنا. [1]
سجل القراءة
ينشئ deque محتواه من iterable؛ سجل seen يضاف إليه قبل كل yield في مثالنا. [1]
السعة الصفرية
على CPython 3.12.14، مولدنا يعطي 2،5،8؛ نبني منه deque بالسعة maxlen=0. [1]
from collections import deque seen=[] def rows(): for value in [2,5,8]: seen.append(value) yield value g=rows() out=deque(g,maxlen=0) [1]

فارغ لكنه مستنفد
الناتج []، لكن seen يصبح [2,5,8]؛ next(g,"done") يعيد done: لا تبقى قيمة. [1]
print(list(out)) print(seen) print(next(g,"done")) [1]
تحكم بمولد جديد: maxlen=1 تحتفظ بـ[8] وتقرأ القيم الثلاث أيضًا؛ نفاد المدخل مختلف عن عدد العناصر المحتفظ بها. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
