Return VS Yield dengan Python — Komik Singkat

Dan masalah ini semakin buruk semakin banyak data yang kita tangani. Bagaimana jika ada 1000 orang dalam antrean?
Kata kunci 'kembali'
def add10(x):
return x
x = add10(4) # x = 14
def get_takoballs(orders):
output = []
for order in orders:
output.append(f'{order} takoballs')
return output
y = get_takoballs([4,6,8])
# y = ['4 takoballs', '6 takoballs', '8 takoballs']
Kata kunci 'hasil'
Seperti return
kata kunci, yield
kata kunci menandakan output dari suatu fungsi.
Namun, tidak seperti return
kata kunci, satu fungsi dapat yield
menghasilkan banyak keluaran. Kata yield
kunci tidak menghentikan seluruh fungsi setelah dijalankan.
def testfunction():
yield 4
yield 5
yield 6
for n in testfunction():
print(n)
# 4
# 5
# 6
def get_takoballs(orders):
for order in orders:
yield f'{order} takoballs'
for food in get_takoballs([4, 6, 8]):
print(food)
# 4 takoballs
# 6 takoballs
# 8 takoballs
Katakanlah kita memiliki 10.000 pelanggan di kedai tako kita (bukan hanya 3).
orders = # a list containing 10000 orders
def return_stall(orders):
# process all 10000 orders first
# then output all 10000 processed orders
output = []
for order in order:
output.append(f'{order} takoballs')
return output
def yield_stall(orders):
# process 1 order, then output it
# repeat til all 10000 orders are completed
for order in orders:
yield f'{order takoballs}'
Untuk yield_stall
fungsinya, setiap pesanan dihasilkan (diberikan kepada pelanggan) segera setelah diproses. Orang pertama hanya perlu menunggu pesanannya dan hanya pesanannya yang selesai.
Kesimpulan
Jika Anda berurusan dengan jumlah data yang cukup besar, pertimbangkan untuk menggunakan fungsi generator (fungsi yang menggunakan yield
) untuk mempercepat. Semoga ini jelas dan bermanfaat!
Beberapa Kata Akhir
Jika cerita ini memberikan nilai dan Anda ingin menunjukkan sedikit dukungan, Anda dapat:
- Tepuk tangan 50 kali untuk cerita ini (ini benar-benar membantu saya)
- Mendaftar untuk keanggotaan Medium menggunakan tautan saya ($5/bulan untuk membaca cerita Medium tanpa batas)
Tingkatkan Pengkodean
Terima kasih telah menjadi bagian dari komunitas kami! Sebelum kamu pergi:
- Tepuk tangan untuk ceritanya dan ikuti penulisnya
- Lihat lebih banyak konten di publikasi Level Up Coding
- Kursus wawancara coding gratis ⇒ Lihat Kursus
- Ikuti kami: Twitter | LinkedIn | Buletin