Daftar Referensi Python
Keyword yield mengubah fungsi menjadi generator yang menghasilkan nilai satu per satu sambil menyimpan state.
Sintaks
yield value
yield from iterable
Parameter
| Parameter | Wajib? | Keterangan |
|---|---|---|
value |
Tidak | Nilai yang dikirim generator |
iterable |
Ya* | Sumber nilai pada bentuk yield from |
Nilai balik: objek generator saat fungsi dipanggil; setiap yield menghasilkan satu nilai.
Contoh
def hitung():
yield 1
yield 2
yield 3
print(list(hitung()))
Output:
[1, 2, 3]
Contoh Lainnya
Menghasilkan kuadrat
def kuadrat(batas):
for n in range(batas):
yield n * n
print(list(kuadrat(4)))
Output:
[0, 1, 4, 9]
Mendelegasikan dengan yield from
def gabung():
yield from [1, 2]
yield from [3, 4]
print(list(gabung()))
Output:
[1, 2, 3, 4]
State tersimpan
def penghitung():
nilai = 10
yield nilai
nilai += 5
yield nilai
gen = penghitung()
print(next(gen))
print(next(gen))
Output:
10
15
Kesalahan Umum
yieldhanya boleh berada di dalam fungsi.- Generator tidak menjalankan body sampai diiterasi.
- Generator yang sudah habis tidak dapat diulang; buat instance generator baru.
Pelajari Lebih Lanjut
- Referensi: iter() · next() · Fungsi
- Buku Belajar Python untuk Pemula: Bab 11, Bab 16, dan Bab 17
