Return VS Yield в Python — короткий комикс

И эта проблема усугубляется по мере того, как мы имеем дело с большим объемом данных. А если в очереди 1000 человек?
Ключевое слово «возврат»
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']
Ключевое слово «доходность»
Как и return
ключевое слово, yield
ключевое слово означает вывод функции.
Однако, в отличие от return
ключевого слова, одна функция может иметь yield
несколько выходов. Ключевое yield
слово не останавливает всю функцию после запуска.
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
Допустим, у нас 10000 покупателей в нашем тако стенде (вместо 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}'
Для yield_stall
функции каждый заказ передается (отдается клиенту) сразу после его обработки. Первому парню просто нужно дождаться окончания своего и только его заказа.
Заключение
Если вы имеете дело со значительным объемом данных, рассмотрите возможность использования функции генератора (функции, которая использует yield
), чтобы ускорить процесс. Надеюсь, это было понятно и полезно!
Несколько заключительных слов
Если эта история была полезной, и вы хотите оказать небольшую поддержку, вы можете:
- Хлопните 50 раз за эту историю (это действительно очень помогает мне)
- Подпишитесь на членство в Medium, используя мою ссылку (5 долларов в месяц, чтобы читать неограниченное количество историй на Medium)
Повышение уровня кодирования
Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:
- Хлопайте за историю и подписывайтесь на автора
- Смотрите больше контента в публикации Level Up Coding
- Бесплатный курс собеседования по программированию ⇒ Посмотреть курс
- Подписывайтесь на нас: Твиттер | Линкедин | Новостная рассылка