Return VS Yield dengan Python — Komik Singkat

May 05 2023
# Mengapa 'hasil' dapat membuat kode Python Anda lebih cepat
Dan masalah ini semakin buruk semakin banyak data yang kita tangani. Bagaimana jika ada 1000 orang dalam antrean? Kata kunci 'kembali' Kata kunci 'hasil' Seperti kata kunci kembali, kata kunci hasil menandakan output dari suatu fungsi.

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 returnkata kunci, yieldkata kunci menandakan output dari suatu fungsi.

Namun, tidak seperti returnkata kunci, satu fungsi dapat yieldmenghasilkan banyak keluaran. Kata yieldkunci 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_stallfungsinya, 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:

  1. Tepuk tangan 50 kali untuk cerita ini (ini benar-benar membantu saya)
  2. 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