Yield is a Python built-in keyword that returns the value(s) from a function. The execution of the function is not terminated. Rather, it returns the value to the caller and maintains the execution state of the function. The execution of the function is resumed from the last yield statement. The yield allows us to produce a sequence of values rather than one value. It is used inside a function body. The function that contains a yield statement is known as the generator function.
There are several advantages to yield keyword. For instance, it controls the memory allocation and saves the local variable state. However, it increases the complexity of the code.
This article explains the use of the yield keyword with examples.
Syntax of Yield
The yield syntax is simple and straightforward. The yield is initiated with the yield keyword and syntax as follows:
Now, let’s see examples to understand the use and works of yield statements. Traditionally, the return keyword terminates the execution of the program and return a value at the end, while yield returns the sequence of values. It does not store the value in memory and returns the value to the caller at run time. In the given below example, a generator function is defined to determine the leap year. A leap is that year when divisible by four returns zero as a remainder. The yield keyword returns the value of leap year to the caller. As it will get the value of leap year, it will pause the program execution, return the value, and then resume the execution from where it was stopped.
for i in my_list:
#declaring the years list
print("Printing the leap year values")
for x in leapfunc(year_list):
The output shows the series of leap years.
Let’s see another example where the generator function yields various numbers and strings.
#calling and iterating through the generator function
for i in myfunc():
Let’s implement a generator function to calculate and print the cube value of sequence of numbers. We are generating the cube values from 1 to 30.
#the infinite while loop
#incrementing value by 1
print("The cube values are: ")
#calling the generator function
for i in calcube():
The output shows the cube value less than 30.
Yield is a Python built-in keyword that does not terminate the execution of the program and generate a series of values. In comparison to the return keyword, the yield keyword produces multiple values and returns to the caller. This article explains the Python Yield with examples.