رفتن به محتوای اصلی
برنامه‌سازی پیشرفته با پایتون درس‌نامهٔ آزاد
مفهوم متوسط ۸ دقیقه

تکرارگرها و مولدها

پروتکل تکرار، next و StopIteration، yield و مولدهای بی‌نهایت با مثال عملی.

def fibonacci():
    a, b = 0, 1
    while True:  # دنبالهٔ بی‌نهایت — فقط با مولد ممکن است
        yield a
        a, b = b, a + b

gen = fibonacci()
print([next(gen) for _ in range(7)])  # [0, 1, 1, 2, 3, 5, 8]

سه سطح را قاطی نکن: تکرارپذیر (list — هر بار از اول)، تکرارگر (خروجی iter() — یک‌بارمصرف و حالت‌دار)، مولد (تابعِ دارای yield — تکرارگری که تنبل می‌سازد). عبارت‌های مولدی (x*x for x in range(n)) هم همان تنبلی را در یک خط می‌دهند.

مطالب مرتبط

از همین بخش و با برچسب‌های مشترک

این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

وضعیت پیشرفت برای تکرارگرها و مولدها