Variables can only reach the area in which they are defined, which is called scope. Think of it as the area of code where variables can be used. Python supports global variables (usable in the entire program) and local variables.
By default, all variables declared in a function are local variables. To access a global variable inside a function, it’s required to explicitly define ‘global variable’.
Complete Python Bootcamp: Go from zero to hero in Python 3
Below we’ll examine the use of local variables and scope. This will not work:
#!/usr/bin/python def f(x,y): print('You called f(x,y) with the value x = ' + str(x) + ' and y = ' + str(y)) print('x * y = ' + str(x*y)) z = 4 # cannot reach z, so THIS WON'T WORK z = 3 f(3,2)
but this will:
#!/usr/bin/python def f(x,y): z = 3 print('You called f(x,y) with the value x = ' + str(x) + ' and y = ' + str(y)) print('x * y = ' + str(x*y)) print(z) # can reach because variable z is defined in the function f(3,2)
Let’s examine this further:
#!/usr/bin/python def f(x,y,z): return x+y+z # this will return the sum because all variables are passed as parameters sum = f(3,2,1) print(sum)
Calling functions in functions
We can also get the contents of a variable from another function:
#!/usr/bin/python def highFive(): return 5 def f(x,y): z = highFive() # we get the variable contents from highFive() return x+y+z # returns x+y+z. z is reachable becaue it is defined above result = f(3,2) print(result)
If a variable can be reached anywhere in the code is called a global variable. If a variable is known only inside the scope, we call it a local variable.