CodeBlanks Logo Icon CodeBlanks

yield

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

main.py
# count_up üreteci yaz ve değerleri yazdır

Örnek çözüm

main.py
# 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

Soru
def count_up():
    ____ 1
    yield 2
    yield 3
Cevap
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

Orta seviye bölümündeki tüm dersler