Özet - Generator'lar
- Python kursu
- Orta seviye
- Ders 105/116
- 5 dk
yield, yield from ve send'i birleştirerek bir log akışı yazarsın.
Özet - Generator'lar
Bu grupta yield ile üreteç tanımlamayı, generator nesnesi ve next() çağrısını, yield from ile iç üreteç yayınlamayı, send ve throw ile dışarıdan değer/hata göndermeyi ve close ile üreteci sonlandırmayı gördük.
Üreteçler tembel çalışır, bellekte tüm veriyi tutmaz. yield değer üretip duraklar; next ilerletir; yield from iç üreteci bağlar; send değer gönderir; close sonlandırır. Şimdi bunları birleştiren bir örneği yazacağız.
Uygulama Birleşik özet örneği
def gen(): fonksiyonunu tanımla. Gövdede yield 1, yield from [2, 3] ve yield 4 satırları olsun. Sonra print(list(gen())) ile tüm değerleri yazdır.
Başlangıç kodu
# yield ve yield from ile üreteç yazÖrnek çözüm
# yield ve yield from ile üreteç yaz
def gen():
yield 1
yield from [2, 3]
yield 4
print(list(gen()))Beklenen çıktı
[1, 2, 3, 4]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangi yapı iç üreteci yayımlar?
- yield
- yield from Doğru cevap
- send
- close
Açıklama: yield from iç üretecin tüm değerlerini yayımlar.
2 Üreteç kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
yield |
Değer üretir |
next |
İlerletir |
yield from |
İç üreteç |
close |
Sonlandırır |
3 yield from satırı
def gen():
yield 1
____ [2, 3]
yield 4
def gen():
yield 1
yield from [2, 3]
yield 4
Açıklama: yield from [2, 3] ile listeyi yayımlar.
4 Özet örneği parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
def gen |
Üreteç tanımı |
yield 1 |
Tek değer |
yield from [2, 3] |
Liste yayını |
print(list(gen())) |
Sonuç listeleme |