[Tutor] Making a Primary Number List generator

Alan Gauld alan.gauld at btinternet.com
Tue May 14 10:51:11 CEST 2013


On 14/05/13 00:01, Daniel Magruder wrote:

> I am still confused as what return does.

Having seen the other replies I'll try a slightly
different explanation.

All programs are formed by a hierarchy of functions.
You start with a top level driver block which then utilizes or calls 
helper functions. Those helper functions, in turn, call other helper 
functions. We can show it diagrammatically as a tree and several 
software design notations exist that do this. Here is one example:

http://www.smartdraw.com/resources/tutorials/Entity-Structure-Diagrams

Since this is a text forum I'll do it in a different format...

Driver block
    helper1
       funcA
       funcB
    helper2
       funcA
       funcC
    helper3

In this hierarchy the Driver calls 3 functions.
The helper functions call 2,2 and zero functions respectively.
funcA is called by both helper1 and helper2. When a function calls 
another function it effectively pauses its own execution and hands 
control to the called function.

Inside each of these 6 functions there are return statements(*) the 
purpose of which is to return control to the next higher level in the 
hierarchy. The function stops as soon as it reaches a return statement 
and control reverts to the previous level.

Thus in funcA the first time it is called it will return to helper1.
The second time it is called it will return control to helper2.

return also has a secondary purpose which is to pass back a value to the 
caller which value is the result of the functions calculations.

(*) Some functions do not have an explicit return statement. In these 
cases they run to completion and control then reverts to the calling 
function with an implied return value of None.

Does that help?

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/



More information about the Tutor mailing list