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

Help