Python'da Getiri VS Verim — Kısa Bir Çizgi Roman

Ve bu sorun, uğraştığımız daha fazla veriyle daha da kötüleşiyor. Sırada 1000 kişi varsa ne olur?
'dönüş' anahtar kelimesi
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']
'verim' anahtar kelimesi
Anahtar kelime gibi return
, yield
anahtar kelime de bir fonksiyonun çıktısını belirtir.
Ancak, return
anahtar sözcükten farklı olarak, bir işlev yield
birden çok çıktı verebilir. Anahtar sözcük yield
, çalıştırıldıktan sonra tüm işlevi durdurmaz.
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
Diyelim ki tako standımızda 10000 müşterimiz var (sadece 3 yerine).
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}'
Fonksiyon için yield_stall
, her sipariş işlenir işlenmez teslim edilir (müşteriye verilir). İlk adamın sadece kendisinin ve sadece emrinin bitmesini beklemesi gerekiyor.
Çözüm
Büyük miktarda veriyle uğraşıyorsanız, yield
işleri hızlandırmak için bir oluşturucu işlevi (kullanan bir işlev) kullanmayı düşünün. Umarım bu açık ve yardımcı olmuştur!
Bazı final sözleri
Bu hikaye değer sağladıysa ve biraz destek göstermek isterseniz, şunları yapabilirsiniz:
- Bu hikaye için 50 kez alkışlayın (bu gerçekten, gerçekten bana yardımcı oluyor)
- Bağlantımı kullanarak bir Medium üyeliği için kaydolun (sınırsız Medium öyküsünü okumak için ayda 5 ABD doları)
Seviye Atlama Kodlama
Topluluğumuzun bir parçası olduğunuz için teşekkürler! Gitmeden önce:
- Hikaye için alkışlayın ve yazarı takip edin
- Seviye Atlama Kodlama yayınında daha fazla içerik görüntüleyin
- Ücretsiz kodlama mülakat kursu ⇒ Kursu Görüntüle
- Bizi takip edin: Twitter | LinkedIn | Bülten