0Pricing
Python Academy · درس

المولّدات

افهم المولّدات واستخدامها لإنشاء المُكرّرات

المولّدات درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 2 من أصل 5. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 5 دروس في المجموع.

مقدمة إلى المولّدات

مقدمة إلى المولّدات

المولّدات نوع خاص من المكررات في Python يتيح لك التكرار على البيانات بتقييم كسول. وبدلاً من إرجاع جميع البيانات دفعة واحدة، تُنتج عنصرًا واحدًا في كل مرة، ما يجعلها موفرة للذاكرة.

في هذا الدرس، ستتعلم كيفية إنشاء المولّدات واستخدامها في Python.

المولّدات — رسم توضيحي 1

ما المولّد؟

ما المولّد؟

المولّد هو دالة تستخدم الكلمة المفتاحية yield لإرجاع القيم واحدةً تلو الأخرى. ويستأنف كل استدعاء للطريقة next() الخاصة بالمولّد التنفيذ من الموضع الذي أصدرت منه الدالة آخر قيمة.

# Basic generator example
def my_generator():
    yield 1
    yield 2
    yield 3

# Using the generator
gen = my_generator()
print(next(gen))  # Outputs: 1
print(next(gen))  # Outputs: 2
print(next(gen))  # Outputs: 3

كيف تعمل المولّدات

كيف تعمل المولّدات

تحفظ المولّدات حالة الدالة، ولذلك يمكنها استئناف التنفيذ من الموضع الذي توقفت عنده تمامًا. وهذا يجعلها موفرة للذاكرة ومثالية لمجموعات البيانات الكبيرة.

# Example: Generating a range of numbers
def range_generator(start, end):
    while start < end:
        yield start
        start += 1

for number in range_generator(1, 5):
    print(number)  # Outputs: 1, 2, 3, 4

تعبيرات المولّدات

تعبيرات المولّدات

تشبه تعبيرات المولّدات استيعابات القوائم، لكنها تستخدم الأقواس الدائرية بدلًا من الأقواس المربعة. وهي تنشئ مولّدات بدلًا من القوائم.

# Generator expression
gen_exp = (x * x for x in range(5))

for value in gen_exp:
    print(value)  # Outputs: 0, 1, 4, 9, 16

المولّدات مقابل القوائم

المولّدات مقابل القوائم

المولّدات أكثر توفيرًا للذاكرة من القوائم لأنها لا تخزّن جميع البيانات في الذاكرة. بل تنشئ البيانات أثناء التشغيل.

# Comparing lists and generators
# List comprehension
list_comp = [x * x for x in range(1000000)]

# Generator expression
gen_exp = (x * x for x in range(1000000))

# List comprehension uses more memory
print(type(list_comp))  # Outputs: <class 'list'>
print(type(gen_exp))    # Outputs: <class 'generator'>

حالات استخدام المولّدات

حالات استخدام المولّدات

تُعدّ المولّدات مثالية من أجل:

  • معالجة مجموعات البيانات الكبيرة التي لا تتسع لها الذاكرة.
  • إنشاء تسلسلات لا نهائية.
  • التقييم الكسول للبيانات.

المولّدات اللانهائية

المولّدات اللانهائية

يمكن للمولّدات إنتاج تسلسلات لا نهائية، مثل تسلسل لا ينتهي من الأرقام. تأكد من إيقاف الحلقة لمنع التنفيذ اللانهائي.

# Infinite generator example
def infinite_sequence():
    num = 0
    while True:
        yield num
        num += 1

# Using the infinite generator
for i in infinite_sequence():
    if i > 5:
        break
    print(i)  # Outputs: 0, 1, 2, 3, 4, 5

دوال مولّدة تحتوي على عدة عبارات yield

دوال مولّدة تحتوي على عدة عبارات yield

يمكن أن تحتوي الدوال المولّدة على عدة عبارات yield، ما يتيح لك إنشاء تسلسلات معقدة:

# Multiple yields in a generator
def multi_yield():
    yield "First"
    yield "Second"
    yield "Third"

for value in multi_yield():
    print(value)  # Outputs: First, Second, Third

الأخطاء الشائعة في استخدام المولّدات

الأخطاء الشائعة في استخدام المولّدات

إليك بعض الأخطاء التي ينبغي تجنبها:

  • استخدام return بدلًا من yield في دالة مولّدة.
  • عدم استهلاك المولّد باستخدام حلقة أو next().
  • استخدام المولّدات مع مجموعات البيانات الصغيرة التي تكون القوائم أنسب لها.

ما الذي تعلمناه؟

ما الذي تعلمناه؟

في هذا الدرس، تعلمت:

  • ما المولّدات وكيف تعمل في Python.
  • كيفية استخدام yield لإنشاء دوال مولّدة.
  • الاختلافات بين المولّدات والقوائم.
  • حالات استخدام المولّدات، مثل التسلسلات اللانهائية ومجموعات البيانات الكبيرة.

أحسنتم! لننتقل إلى الموضوع التالي.

المولّدات — رسم توضيحي 11

الأسئلة الشائعة

هل درس «المولّدات» مجاني؟

نعم — نص درس «المولّدات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 5 دروس في المجموع.

ماذا ستتعلم في «المولّدات»؟

افهم المولّدات واستخدامها لإنشاء المُكرّرات تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 5.

كم من الوقت يستغرق درس «المولّدات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. Decorators
  2. المولّدات
  3. مديرو السياق (عبارات with)
  4. الاستيعابات (القوائم والمجموعات والقواميس)
  5. المُكرّرات والقابلة للتكرار
← العودة إلى Python Academy