Scope

Scope refers to the areas that variables are visible and accessible. Variables that can be accessed anywhere in a Python program are in the global scope. Conversely, variables that are defined within the body of structures like classes and methods exist only in the local scope.

Local Scope

Suppose a variable is initialized within a function. This variable can only be used within that function and not from outside the function.

def my_function():
x = 200
print(x)
my_function()

Nested Functions and Local Scope

In the example below, a variable x is defined within the local scope of the outer_function() function, followed by a defined inner_function() function. Since inner_function() exists within the local scope of outer_function(), x can be accessed and printed within inner_function():

def outer_function():
x = 200
# Initialized in outer function
def inner_function():
print(x)
inner_function()
outer_function()
# Output: 200

Global Scope

A variable initialized in the main body is defined as a global variable and can be used anywhere in the code, including nested blocks, loops, etc. This is because these variables exist in the global scope of the code.

x = 200
def fun():
print(x)
fun()
print(x)
"""
Output:
200
200
"""
Interested in helping build Docs? Read the Contribution Guide or share your feedback.

Learn Python on Codecademy