‘Return’ vs ‘Yield’ in Python



Indhumathy shares with us a short guide to what the ‘return’ and ‘yield’ statements actually do in Python.

In Python functions, we might have seen ‘return’ or ‘yield’ statements. What does the ‘return’ and ‘yield’ statement do? 

Let’s look at this in detail in this article. 

‘return’ statement

The ‘return’ statement terminates the function call and returns the value to the caller. ‘return’ statement occurs only inside the function. 


return [expression_list] 

expression_list is evaluated and it can return a tuple/list/dict/set or a single value.

1) return a single value

2) ‘return’ →List

3) return →a tuple

If the expression list contains at least one comma, it returns a tuple.

4) return →dict

Multiple return statements 

When we have multiple return statements, the function call is terminated when it reaches the first return statement. 

‘yield’ statement

If a function has a ‘yield’ statement instead of a ‘return ‘ statement, it is known as generator functions or generators.  

‘yield statement’ won’t terminate the function during the function call. During multiple calls, it will generate successive output.  

The generator function will return a generator object. Generator objects are single active iterators. They only support one active iteration. We can access the generator object using for loop, list(),next() 

1. Generators 

During a function call, the generator function will return a generator object which yields one result at a time. 
Generators are memory efficient. 

2. Using next() 

We can access the result one by one from the generator object using next(). It will yield value one by one. 
When the object is exhausted, it will raise “Stop Iteration” 

3. Using for loop 

We can access the generator object using for loop also. It will loop through the result. To overcome “StopIteration”, we can use for loop to access the elements from the generation object. 

4. Using list() constructor 

We can convert the generator object into a list using the list() constructor. 

‘yield’ statement vs ‘return’ statement 

The generator object will yield one value at a time. It’s like resuming function. 

‘return’ statement will return all the values at one time. 

Difference between Normal function and Generator Function 

  1. Normal function when called, compute the value and return it.
    The generator function returns a generator object which is an iterator. 
  2. A normal function has a ‘return’ statement. 
    Generator function has ‘yield statement 
  3. ‘return’ stops the execution but ‘yield’ pauses the execution and resumes at the same point. 
  4. Generators are memory efficient. 


In this article, I have covered the differences between the ‘return’ statement and ‘yield’ statement. In normal function,’ return’ is used but ‘yield’ is used in the generator function. I hope you all like it, thanks for reading!


Becca Cooke, Head of Product, Tradebyte, examines the current state of tech industry as a viable career path for women, reframing the barriers for entry...
Dr Zoë Russell, Co-founder, Rethink Carbon, takes a look into the importance of a work-life balance and gives her tips as a female founder on...
Embracing the tech industry as a female entrepreneur is an exciting journey, and accessing funding can be a key stepping stone. Here's a guide from...
Sarah Gilchriest, Chief People Officer at QA Workforce Learning, a group encompassing QA, Circus Street and Cloud Academy, explores the digital skills that will be...

This website stores cookies on your computer. These cookies are used to improve your website and provide more personalized services to you, both on this website and through other media. To find out more about the cookies we use, see our Privacy Policy.