الكلمة المفتاحية yield
اكتب دوال مولّدات باستخدام yield لإنشاء مكرّرات مخصصة
الكلمة المفتاحية yield درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.
مقدمة
ما هو yield؟
def count_up(n):
for i in range(n):
yield i
for x in count_up(3):
print(x)دالة المولّد مقابل الدالة العادية
def gen():
print('start')
yield 1
print('middle')
yield 2
g = gen() # no print yet
print(next(g)) # 'start', then 1المولّد اللانهائي
def naturals(n=0):
while True:
yield n
n += 1
import itertools
print(list(itertools.islice(naturals(), 5)))yield from
def chain(*iters):
for it in iters:
yield from it
print(list(chain([1,2], [3,4], [5])))إرسال القيم باستخدام send()
def accumulator():
total = 0
while True:
n = yield total
if n is None: break
total += n
g = accumulator()
next(g) # prime
print(g.send(10))
print(g.send(5))حالة المولّد
def stateful():
seen = set()
while True:
item = yield
seen.add(item)
yield len(seen)
g = stateful()
next(g); g.send('a'); print(next(g)); g.send('b'); print(next(g))إغلاق مولّد
def resource_gen():
try:
while True:
yield
finally:
print('cleaned up')
g = resource_gen()
next(g)
g.close()StopIteration وreturn
def gen_with_return():
yield 1
yield 2
return 'done'
g = gen_with_return()
try:
while True: print(next(g))
except StopIteration as e:
print('returned:', e.value)مولّد فيبوناتشي
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
import itertools
print(list(itertools.islice(fibonacci(), 10)))المولّدات مقابل الفئات التي تستخدم __iter__
# Generator is simpler than:
# class Counter:
# def __iter__(self): return self
# def __next__(self): ...
print('generators simplify iterators')تحقق سريع
مراجعة
واصل التقدم
الأسئلة الشائعة
هل درس «الكلمة المفتاحية yield» مجاني؟
نعم — نص درس «الكلمة المفتاحية yield» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.
ماذا ستتعلم في «الكلمة المفتاحية yield»؟
اكتب دوال مولّدات باستخدام yield لإنشاء مكرّرات مخصصة تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟
لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «الكلمة المفتاحية yield»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟
نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- اختصارات القوائم البرمجية
- اختصارات المجموعات والقواميس
- تعبيرات المولّدات
- الكلمة المفتاحية yield