isgenerator تفحص نوع الكائن؛ تبقى True لمولدنا المغلق. getgeneratorstate تميز حالة التنفيذ. [1]
الخلاصة السريعة
لا؛ النوع لا يثبت بقاء المولد مفتوحًا. [1]
- isgenerator تفحص نوع الكائن؛ تبقى True لمولدنا المغلق. getgeneratorstate تميز حالة التنفيذ. [1]
- على CPython 3.12.14، rows تعطي bud؛ الحالة GEN_CREATED عند البناء، ثم GEN_SUSPENDED بعد next الأولى. [1]
- بعد own.close() تصبح الحالة GEN_CLOSED؛ isgenerator(own) تبقى True كما قبل الإغلاق. [1]
- next(own,"done") تعطي done الافتراضية، لا قيمة جديدة من المولد المغلق. [1]
- تحكم بمولد جديد: next تعطي bud وحالته GEN_SUSPENDED. نختبر مولدًا متزامنًا بسيطًا، لا إدارة موارد أو تزامنًا. [1]
نوع وحالة
isgenerator تفحص نوع الكائن؛ تبقى True لمولدنا المغلق. getgeneratorstate تميز حالة التنفيذ. [1]
البدء والتعليق
على CPython 3.12.14، rows تعطي bud؛ الحالة GEN_CREATED عند البناء، ثم GEN_SUSPENDED بعد next الأولى. [1]
بعد الإغلاق
بعد own.close() تصبح الحالة GEN_CLOSED؛ isgenerator(own) تبقى True كما قبل الإغلاق. [1]
from inspect import isgenerator,getgeneratorstate def rows():yield "bud" own=rows() print(getgeneratorstate(own)) print(next(own),getgeneratorstate(own)) own.close() print(isgenerator(own),getgeneratorstate(own)) [1]

الطلب والتحكم
next(own,"done") تعطي done الافتراضية، لا قيمة جديدة من المولد المغلق. [1]
print(next(own,"done")) control=rows() print(next(control),getgeneratorstate(control)) [1]
تحكم بمولد جديد: next تعطي bud وحالته GEN_SUSPENDED. نختبر مولدًا متزامنًا بسيطًا، لا إدارة موارد أو تزامنًا. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
