yield
- Python kursu
- Orta seviye
- Ders 100/116
- 5 dk
yield ile generator fonksiyonunu öğrenirsin.
yield
yield anahtar sözcüğü, bir fonksiyonu üreteç (generator) yapar. return'den farklı olarak değer ürettikten sonra fonksiyon sonlanmaz; duraklar ve bir sonraki çağrıda kaldığı yerden devam eder.
Örnek: def count_up():\n yield 1\n yield 2\n yield 3. for v in count_up(): çağrısı sırayla 1, 2, 3 üretir. Her yield bir değer verir ve fonksiyon duraklar. Üreteçler, büyük verileri tembel (lazy) üretmek için idealdir; tüm liste belleğe yüklenmez.
Tembel üretim
Üreteçler tembel (lazy) çalışır: bir değer istenmeden üretilmez. next(g) çağrısı bir sonraki yield'e kadar ilerletir. for döngüsü bu işi otomatik yapar.
Bu özellik, sonsuz diziler ya da çok büyük veriler için kullanışlıdır. Örnek: def fib():\n a, b = 0, 1\n while True:\n yield a\n a, b = b, a + b. Bu üreteç asla bitmez; ama islice(fib(), 10) ile ilk 10 terimi güvenle alabilirsin.
Uygulama count_up üreteci yaz
def count_up(): fonksiyonunu tanımla. Gövdede yield 1, yield 2 ve yield 3 satırları olsun. Sonra for v in count_up(): döngüsüyle her değeri print(v) ile yazdır.
Başlangıç kodu
# count_up üreteci yaz ve değerleri yazdırÖrnek çözüm
# count_up üreteci yaz ve değerleri yazdır
def count_up():
yield 1
yield 2
yield 3
for v in count_up():
print(v)Beklenen çıktı
1 2 3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 yield return'den ne farkı var?
- Daha hızlı çalışır
- Fonksiyonu sonlandırmaz, duraklatır Doğru cevap
- Yalnızca sayı döndürür
- Sınıf içinde kullanılır
Açıklama: yield değer üretip fonksiyonu bekletir.
2 yield satırını tamamla
def count_up():
____ 1
yield 2
yield 3
def count_up():
yield 1
yield 2
yield 3
Açıklama: yield 1 değeri üretir ve duraklar.
3 yield parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
yield |
Değer üretme |
next(g) |
Sonraki değer |
for v in g |
Otomatik yineleme |
pause |
Duraklama |