yield إنتاج من المولّد

آخر تحديث: 2026-09-22

yield إنتاج من المولّد

yield يحوّل الدالة إلى مولّد؛ وفي كل مرة يُستدعى next() تنفَّذ الدالة حتى موضع yield فتعيد القيمة وتتوقف مؤقتًا.

التصنيفالكلمات المفتاحية والعبارات
النوعكلمة مفتاحية / عبارة
إصدار بايثونall

📝 الصياغة

yield [expression]

▶ مثال

عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:

المخرجات:

[0, 1, 2]
المزيد من الحالات قادم قريباً — تابعونا.

❓ أسئلة شائعة

Qما الفرق بين `yield` و`return`؟
Aينهي `return` الدالة ويُرجع قيمة؛ بينما يحوّل `yield` الدالة إلى مولد (generator). كل استدعاء `next()` يشغِّل الكود حتى `yield`، ويُرجع قيمة ويوقف التنفيذ؛ والاستدعاء التالي يستأنف من حيث توقف.
Qلماذا لا تُنفَّذ الدالة التي تحتوي `yield` عند استدعائها؟
Aلأن الاستدعاء ينشئ كائن مولد فقط. لا يبدأ جسم الدالة في العمل فعليًا حتى أول `next()` (أو حلقة `for`، أو تحويل إلى `list()`).
Qهل يمكن التكرار على مولد أكثر من مرة؟
Aلا. المولد يُستخدم مرة واحدة: بمجرد نفاد العناصر انتهى، وأي تكرار لاحق لن يُنتج شيئًا. للتكرار المتكرر، حوّل النتيجة أولاً إلى قائمة أو أنشئ مولدًا جديدًا.
Qماذا تعني `yield from`؟
A`yield from iterable` هي اختصار لـ `for x in iterable: yield x`. داخل المولد «تُفوّض» إلى مكرّر آخر، منتجة عناصره واحدًا تلو الآخر.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%