2️⃣ توابع ژنراتور با yield
با yield تو یه تابع، میتونی ژنراتور بسازی که مقادیر رو یکییکی برگردونه و حالت تابع رو حفظ کنه.
✨ مثال ساده:
def my_generator():
yield 1
yield 2
yield 3
gen = my_generator()
for num in gen:
print(num)
# Khoroji:
# 1
# 2
# 3
✨ مثال پیشرفتهتر (فیبوناچی):
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
for num in fibonacci(6):
print(num)
# Khoroji:
# 0
# 1
# 1
# 2
# 3
# 5
💡 نکته ریز:
درواقع yield اجرای تابع رو متوقف میکنه و مقدار رو برمیگردونه، ولی حالت تابع رو حفظ میکنه.
برعکس return که تابع رو کامل تموم میکنه، yield منتظر فراخوانی بعدی میمونه.
💯 @PythonForYou 🧑💻👩💻