الدالة العادية قد تعيد كائن مولد؛ isgeneratorfunction تفحص الدالة، وisgenerator تفحص الكائن. [1]
الخلاصة السريعة
لا؛ factory تعيد مولدًا هنا. [1]
- الدالة العادية قد تعيد كائن مولد؛ isgeneratorfunction تفحص الدالة، وisgenerator تفحص الكائن. [1]
- على CPython 3.12.14، factory تعيد rows()؛ rows تستخدم yield لإنتاج bud، وevents تسجل التنفيذ. [1]
- isgeneratorfunction(factory) تعطي False؛ تحكم rows يعطي True. إرجاع مولد لا يجعل factory دالة مولدة. [1]
- بعد made=factory()، isgenerator(made) تعطي True؛ السجل ["factory"] فقط، دون تشغيل جسم rows بعد. [1]
- next(made) تعطي bud؛ يصبح السجل ["factory","yield"]. إنشاء المولد وبدء جسمه خطوتان في هذا المثال المؤلف. [1]
دالة وكائن
الدالة العادية قد تعيد كائن مولد؛ isgeneratorfunction تفحص الدالة، وisgenerator تفحص الكائن. [1]
مصنع المثال
على CPython 3.12.14، factory تعيد rows()؛ rows تستخدم yield لإنتاج bud، وevents تسجل التنفيذ. [1]
فحص الدالتين
isgeneratorfunction(factory) تعطي False؛ تحكم rows يعطي True. إرجاع مولد لا يجعل factory دالة مولدة. [1]
from inspect import isgeneratorfunction,isgenerator events=[] def rows(): events.append("yield") yield "bud" def factory(): events.append("factory") return rows() print(isgeneratorfunction(factory),isgeneratorfunction(rows)) [1]

الإنشاء والبدء
بعد made=factory()، isgenerator(made) تعطي True؛ السجل ["factory"] فقط، دون تشغيل جسم rows بعد. [1]
made=factory() print(isgenerator(made),events) print(next(made),events) [1]
next(made) تعطي bud؛ يصبح السجل ["factory","yield"]. إنشاء المولد وبدء جسمه خطوتان في هذا المثال المؤلف. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
