❓ چرا ژنراتورها؟ مزایا و کاربردها 🤔 🔸 صرفه‌جویی تو حافظه: ژنراتورها مقادیر رو یکی‌یکی تولید می‌کنن، نه یه‌جا: import sys gen = (x for x in range(1000000)) print(sys.getsizeof(gen)) # ~104 bytes lst = [x for x in range(1000000)] print(sys.getsizeof(lst)) # ~9000000 bytes 🔸 پشتیبانی از داده‌های بی‌نهایت: می‌تونی دنباله‌های نامحدود بسازی: def infinite_numbers(): num = 0 while True: yield num num += 1 gen = infinite_numbers() for _ in range(5): print(next(gen)) # Khoroji: 0, 1, 2, 3, 4 🔸 ترکیب با توابع داخلی: ژنراتورها با sum، max و غیره خوب کار می‌کنن: print(sum(x for x in range(100))) # Khoroji: 4950 💯 @PythonForYou 🧑‍💻👩‍💻