0Pricing
Python Academy · Ders

yield from ve Yetkilendirme

Üreteçleri birleştirin

yield from ve Yetkilendirme, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

yield from İfadesinin Çözdüğü Sorun

Bir üreteç başka bir yinelenebilirdeki her değeri üretmek istediğinde manuel bir döngü yazabilirsiniz. yield from aynı işi tek satırda yapar.

def manual():
    for x in [1, 2, 3]:
        yield x

print(list(manual()))

yield from Kullanımına Giriş

yield from iterable, bu yinelenebilire devrederek onun her değerini sırayla üretir. Değerleri aktaran bir döngüye göre daha kısa ve anlaşılırdır.

def delegate():
    yield from [1, 2, 3]

print(list(delegate()))

Birden Çok Kaynağı Birleştirme

Birden çok yield from ifadesini zincirleyerek dizileri tembel biçimde birleştirebilirsiniz.

def chained():
    yield from 'ab'
    yield from [1, 2]
    yield from range(2)

print(list(chained()))

Başka Bir Üretece Devretme

Devredilen yinelenebilirin kendisi de bir üreteç olabilir; böylece üreteçleri daha büyük üreteçler hâlinde birleştirebilirsiniz.

def evens(n):
    for i in range(n):
        if i % 2 == 0:
            yield i

def report(n):
    print('evens:')
    yield from evens(n)

print(list(report(6)))

İç İçe Listeleri Düzleştirme

yield from ifadesinin klasik bir kullanım alanı özyinelemeli düzleştirmedir: alt listeler için kendisine devreden bir üreteç.

def flatten(items):
    for item in items:
        if isinstance(item, list):
            yield from flatten(item)
        else:
            yield item

print(list(flatten([1, [2, [3, 4]], 5])))

yield from ve Döngü Karşılaştırması

Aşağıdaki iki sürüm de aynı çıktıyı üretir. yield from, okunabilirlik açısından tercih edilir; ayrıca değer gönderme ve dönüş sonuçları gibi gelişmiş özellikleri de iletir.

def with_loop(src):
    for x in src:
        yield x

def with_yield_from(src):
    yield from src

print(list(with_loop(range(3))))
print(list(with_yield_from(range(3))))

Alt Üretecin Dönüşünü Yakalama

Devredilen bir üreteç bir değer return ettiğinde, yield from bu değeri sonuç olarak verir. Böylece alt üreteçler bir sonucu report edebilir.

def counter(n):
    count = 0
    for i in range(n):
        yield i
        count += 1
    return count

def driver():
    total = yield from counter(3)
    print('subgen yielded', total, 'items')

list(driver())

Pipeline Oluşturma

Devretme, bir pipeline'ı adlandırılmış aşamalara ayırmayı ve bunları birleştirmeyi kolaylaştırır.

def source():
    yield from range(5)

def only_odd(src):
    for x in src:
        if x % 2 == 1:
            yield x

def pipeline():
    yield from only_odd(source())

print(list(pipeline()))

Her Yinelenebilire Devretme

yield from yalnızca üreteçlerle değil, her yinelenebilirle çalışır: listeler, demetler, kümeler, dizeler, sözlük anahtarları ve daha fazlası.

def mixed():
    yield from {1, 2, 3}
    yield from ('a', 'b')

result = list(mixed())
print(sorted(str(x) for x in result))

Üreteçleri Sırayla Birleştirme

Birden çok kaynağı sırayla dolaşan bir üreteç oluşturabilirsiniz; bu, akışları birleştirmek için kullanışlıdır.

def concat(*iterables):
    for it in iterables:
        yield from it

print(list(concat([1, 2], [3], [4, 5])))

Okunabilirliğin Kazandırdıkları

Derin biçimde iç içe veya ağaç benzeri verilerde yield from, özyinelemeli üreteçleri kısa ve amacını açıkça gösterir durumda tutar.

def walk(tree):
    yield tree['name']
    for child in tree.get('children', []):
        yield from walk(child)

tree = {'name': 'root', 'children': [
    {'name': 'a'},
    {'name': 'b', 'children': [{'name': 'c'}]}
]}
print(list(walk(tree)))

Hızlı Kontrol

yield from kullanımını anlayıp anlamadığınızı sınayın.

Özet

yield from ve devretmeyi öğrendiniz:

  • İçteki yinelenebilirden gelen her değeri iletir.
  • Üreteçleri birleştirir ve özyinelemeli düzleştirmeyi mümkün kılar.
  • Alt üretecin dönüş değerini yakalar.
  • Değerleri aktaran manual bir döngüye göre daha anlaşılırdır.

Sıradaki kurs: iş parçacığı kullanımı ve çoklu işlemeyle eşzamanlılık.

Sıkça Sorulan Sorular

“yield from ve Yetkilendirme” dersi ücretsiz mi?

Evet — “yield from ve Yetkilendirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“yield from ve Yetkilendirme” dersinde ne öğreneceğim?

Üreteçleri birleştirin Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“yield from ve Yetkilendirme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Yineleyici Protokolü
  2. Üreteç İşlevleri
  3. Üreteç İfadeleri
  4. yield from ve Yetkilendirme
← Python Academy Sayfasına Dön