tgoop.com/pythopiachannel/183
Last Update:
جنریتور (generator) درپایتون چیست؟
< قسمت 1 >
فرض کن میخوای از ۱ تا ۵۰ رو بشماری. به جای اینکه همهی عددها رو توی یه لیست بزرگ بنویسی و بعد یکی یکی به کسی بدی، میتونی از یه خط تولید استفاده کنی.
جنریتور دقیقا مثل این خط تولید عمل میکنه:
بهش میگی: "عدد اول رو تولید کن."
اون عدد "۱" رو تولید میکنه و بهت میده.
اونجا وایمیسته و منتظر میمونه.
بهش میگی: "عدد بعدی."
اون "۲" رو تولید میکنه و بهت میده.
و همینطور ادامه میده تا تموم بشه.
این کار باعث میشه حافظه (RAM) کامپیوترت پر نشه، چون نیازی نیست تمام اعداد رو از اول تا آخر توی حافظه نگهداری کنی. در هر لحظه، فقط یک عدد در حال تولید یا استفاده است.
چطور یک جنریتور بسازیم؟
جنریتور در پایتون یک تابع خیلی شبیه به توابع عادیه، فقط به جای کلمه return از کلمه کلیدی yield استفاده میکنه.
مثال: ساختن دنباله اعداد
def my_generator():
yield 1
yield 2
yield 3
# استفاده از جنریتور
for number in my_generator():
print(number)
# خروجی:
# 1
# 2
# 3
BY Pythopia

Share with your friend now:
tgoop.com/pythopiachannel/183