Yield е вградена ключова дума в Python, която връща стойността (стойностите) от функция. Изпълнението на функцията не се прекратява. По-скоро връща стойността на повикващия и поддържа състоянието на изпълнение на функцията. Изпълнението на функцията се възобновява от последния отчет за доходност. Добивът ни позволява да създадем поредица от стойности, а не една стойност. Използва се във функционално тяло. Функцията, която съдържа изявление за добив, е известна като функция генератор.
Има няколко предимства да се даде ключова дума. Например, той контролира разпределението на паметта и запазва състоянието на локалната променлива. Това обаче увеличава сложността на кода.
Тази статия обяснява използването на ключовата дума yield с примери.
Синтаксис на добив
Синтаксисът на добива е прост и ясен. Доходността се инициира с ключовата дума yield и синтаксис, както следва:
стойност на добиваПримери
Сега, нека видим примери за разбиране на използването и произведенията на изявленията за добив. Традиционно ключовата дума return завършва изпълнението на програмата и връща стойност в края, докато yield връща последователността от стойности. Той не съхранява стойността в паметта и връща стойността на повикващия по време на изпълнение. В дадения по-долу пример е дефинирана генераторна функция за определяне на високосна година. Скок е тази година, когато делима на четири връща нула като остатък. Ключовата дума yield връща стойността на високосна година на повикващия. Тъй като ще получи стойността на високосната година, ще спре на пауза изпълнението на програмата, ще върне стойността и след това ще възобнови изпълнението от мястото, където е било спряно.
#declaring генератор за определяне на високосна годинаdef leapfunc (my_list):
за аз в my_list:
ако (i% 4 == 0):
# използвайки добив
добив i
#declaring списъка с години
year_list = [2010,2011,2012,2016,2020,2024]
print ("Отпечатване на стойностите на високосната година")
за x в leapfunc (year_list):
печат (x)
Изход
Резултатът показва поредицата високосна година.
Нека да видим друг пример, където функцията генератор дава различни числа и низове.
#declaring функция на генераторdef myfunc ():
добив "Марка"
добив "Джон"
добив "Тейлър"
добив "Иван"
добив 10
добив 20
добив 30
добив 40
добив 50
#calling и итерация чрез функцията генератор
за i в myfunc ():
#printing стойности
печат (i)
Изход
Нека да приложим функция генератор за изчисляване и отпечатване на стойността на куба на последователност от числа. Генерираме стойностите на куба от 1 до 30.
#declaring функция на генератор за изчисляване на стойността на кубаdef calcube ():
val = 1
# безкрайният цикъл while
докато е вярно:
# изчисляващ куб
добив val * val * val
# увеличаване на стойността с 1
val = val + 1
print ("Стойностите на куба са:")
# извикване на функцията генератор
за i в calcube ():
ако i> 30:
почивка
печат (i)
Изход
Резултатът показва стойността на куба по-малка от 30.
Заключение
Yield е вградена ключова дума в Python, която не прекратява изпълнението на програмата и генерира поредица от стойности. В сравнение с ключовата дума return, ключовата дума yield генерира множество стойности и се връща към повикващия. Тази статия обяснява доходността на Python с примери.