KoderSolution Logo
HomeArticlesTutorialsForumAI LabRun Code
KoderSolution Logo

The world’s most advanced technical ecosystem for modern software engineers. Learn, build, and grow with next-generation developer tools and resources.

Engineering Newsletter

Join 100,000+ engineers receiving curated high-signal content weekly.

Platforms

  • Technical Articles
  • Interactive Tutorials
  • AI Coding Lab
  • Developer Forum
  • Developer Tools

Pages

  • About Us
  • Contact Us
  • Privacy Policy
  • Terms of Service
  • Refund Policy
  • Disclaimer
  • Advertisement

Popular Topics

  • PHP
  • Laravel
  • Python
  • React.Js
  • MySQL
© 2026 KoderSolutionAll Rights Reserved
Developed Bymaksudur.dev
🐍

Python

Topic Hub & Articles

Python Intro

10 min

Python Getting Started

10 min

Python Syntax

10 min

Recap Quiz

5 Questions

Python Comments

10 min

Python Variables

10 min

Python Data Types

10 min

Recap Quiz

5 Questions

Python Numbers

10 min

Python Casting

10 min

Python Strings

10 min

Recap Quiz

5 Questions

Python Booleans

10 min

Python Operators

10 min

Python Lists

10 min

Recap Quiz

5 Questions

Python Tuples

10 min

Python Sets

10 min

Python Dictionaries

10 min

Recap Quiz

5 Questions

Python If...Else

10 min

Python While Loops

10 min

Python For Loops

10 min

Recap Quiz

5 Questions

Python Functions

10 min

Python Lambda

10 min

Python Arrays

10 min

Recap Quiz

5 Questions

Python Classes/Objects

10 min

Python Inheritance

10 min

Python Iterators

10 min

Python Scope

10 min

Recap Quiz

5 Questions

Python Modules

10 min

Recap Quiz

5 Questions

Python Dates

10 min

Python Math

10 min

Python JSON

10 min

Recap Quiz

5 Questions

Python RegEx

10 min

Python PIP

10 min

Python Try...Except

10 min

Recap Quiz

5 Questions

Python User Input

10 min

Python String Formatting

10 min

Python Scope

10 min

Python Iterators

10 min

Recap Quiz

5 Questions

Python Polymorphism

10 min

Python Math Module

10 min

Python Random Module

10 min

Recap Quiz

5 Questions

Python JSON Module

10 min

Python RegEx Module

10 min

Python PIP Package Manager

10 min

Python File Handling

10 min

Recap Quiz

5 Questions

Python Read Files

10 min

Python Write/Create Files

10 min

Python Delete Files

10 min

Python Directory Management

10 min

ML Intro

10 min

Recap Quiz

5 Questions

ML Mean Median Mode

10 min

ML Standard Deviation

10 min

ML Percentile

10 min

Recap Quiz

5 Questions

ML Data Distribution

10 min

ML Linear Regression

10 min

ML Polynomial Regression

10 min

Recap Quiz

5 Questions

ML Multiple Regression

10 min

ML Scale

10 min

ML Train/Test

10 min

ML Decision Tree

10 min

Progress
0%

0 / 58 Lessons

PythonPython Tutorial
Lesson

Python Scope

10 min reading
Free Course

Python Scope: LEGB Rule, Globals, & Closures

Variable scope determines the visibility and lifetime of variable labels. Python resolves variable lookups using the LEGB rule (Local, Enclosing, Global, Built-in).

The LEGB Scope Hierarchy

flowchart TD
    A["1. Local Scope (Inside current function/lambda)"] --> B["2. Enclosing Scope (Outer enclosing functions / closures)"]
    B --> C["3. Global Scope (Module-level variables)"]
    C --> D["4. Built-in Scope (Python built-in keywords/functions: len, print, int)"]

Scope Keywords

  • global: Declares that a variable inside a function body refers to the module-level global variable.
  • nonlocal: Declares that a variable inside a nested function refers to a variable in the nearest enclosing non-global scope.

Practical Code Example

# Global Scope Variable
app_status = "INITIALIZING"

def outer_service(service_name: str):
    # Enclosing Scope Variable
    connection_count = 0

    def inner_logger(msg: str) -> None:
        nonlocal connection_count  # Mutate enclosing variable
        connection_count += 1
        print(f"[{service_name}] (Log #{connection_count}): {msg}")

    return inner_logger

def update_global_status(new_status: str) -> None:
    global app_status  # Declare intention to modify module global
    app_status = new_status

if __name__ == "__main__":
    logger = outer_service("AuthService")
    logger("User login attempt")
    logger("User credentials verified")

    print(f"Status before update: {app_status}")
    update_global_status("RUNNING")
    print(f"Status after update: {app_status}")

Best Practices & Gotchas

  • Minimize Global Variables: Relying on global state introduces coupling bugs. Pass parameters and return values explicitly instead.
  • UnboundLocalError: If you assign a variable inside a function without global or nonlocal, Python treats it as a local variable across the entire function body.
  • Do Not Shadow Built-ins: Avoid naming variables list, dict, str, id, or input to prevent overwriting Python's built-in namespace.

Self-Check Challenge

Write a function make_counter() returning an inner function that increments and returns a nonlocal count variable each time it is called.

Save Your Progress

Unlock Your
Full Potential.

Sign in to track your learning journey, earn industry-recognized certificates, and join our elite developer community.

Quick Access With

Enterprise-Grade Security Protocol

Recommended Courses & Books

Lesson Recap Quiz Available

Test Your Knowledge

You've completed this section! Take a quick 5-question quiz to check your understanding.

Stuck on this lesson?

Join our community of senior developers.

Ask in Forum