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
messagevariable 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 treatscounteras 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 insideouter().- Nested functions help organize logic and encapsulate behavior.
Summary
| Concept | Description |
|---|---|
| Local Scope | Variables inside a function |
| Global Scope | Variables outside all functions |
global keyword | Allows modifying global variables inside functions |
| Nested Functions | Functions defined inside other functions |
Want to learn more?
Join CodeFriends Plus membership or enroll in a course to start your journey.