Lecture

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
Quiz
0 / 1

What is the correct way to modify a global variable inside a function in Python?

Declare it as a local variable inside the function.

Use the local keyword before the variable.

Use the global keyword before the variable.

Define the variable inside the function.

Lecture

AI Tutor

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result