Skip to main content
Practice

Variable Scope and Nested Functions

In Python, where a variable is defined determines where it can be accessed — this concept is called scope.

Functions can also be nested, meaning one function is defined within another.


1. Local vs Global Scope

Variables defined inside a function are local — they only exist while the function is running.

Variables defined outside any function are global and can be accessed throughout the entire script.

Local vs Global Scope
message = "Hello from global scope"

def show_message():
message = "Hello from local scope"
print(message)

show_message()
print(message)
  • Inside the function, a new message variable is created.
  • The global variable remains unchanged.

2. Using global Keyword

To modify a global variable from inside a function, use the global keyword.

Using global Keyword
counter = 0

def increase():
global counter
counter += 1

increase()
print("Counter:", counter)
  • Without global, Python treats counter as a new local variable.
  • With global, it updates the variable outside the function.

3. Nested Functions

A function can be defined inside another — this is called a nested function. The inner function is local to the outer function and cannot be called directly from outside.

Nested Functions
def outer():
print("Outer function")

def inner():
print("Inner function")

inner()

outer()
  • inner() can only be called inside outer().
  • Nested functions help organize logic and encapsulate behavior.

Summary

ConceptDescription
Local ScopeVariables inside a function
Global ScopeVariables outside all functions
global keywordAllows modifying global variables inside functions
Nested FunctionsFunctions defined inside other functions

Want to learn more?

Join CodeFriends Plus membership or enroll in a course to start your journey.