The difference between yield and return in python

March 30, 2023 · 0 min read
The difference between yield and return  in python
In Python, the yield and return keywords are both used to return values from a function, but they have different purposes and behaviors.

In Python, the yield and return keywords are both used to return values from a function, but they have different purposes and behaviors.

return is a keyword that is used to exit a function and return a value to the caller. When you use return, the function is terminated and no further code in the function is executed. Here's an example:

def add_numbers(x, y):
    result = x + y
    return result

sum = add_numbers(2, 3)
print(sum)  # Output: 5

The add_numbers function returns the result of the addition operation using return. This value is then stored in the variable sum and printed to the console.

yield is also used to return a value from a function, but in a different way. When a function contains a yield statement, it becomes a generator function, which means that it can be used to create an iterator. Here's an example:

def generate_numbers(n):
    for i in range(n):
        yield i

numbers = generate_numbers(5)
for num in numbers:
    print(num)

The generate_numbers function uses a yield statement to return each number from the range 0 to n-1. When the generate_numbers function is called, it returns a generator object which can be used to iterate over the values using a for loop. In this example, the values 0 1 2 3 4 are printed to the console.

So in summary, return is used to return a single value and exit the function, while yield is used to return a sequence of values one at a time and keep the function running.