An educational infographic explaining the LEGB Rule in Python, featuring: Scope Hierarchy: Local → Enclosing → Global → Built-in (LEGB) with color-coded arrows Code Examples: Variable lookup scenarios in each scope (e.g., x=10 inside vs. outside functions) Common Pitfalls: Unintended variable shadowing and global/nonlocal keyword usage.

LeGB Rule in python

LEGB Rule in Python

  • Local Scope: Variables defined within a function are said to have local scope. That means they can only be accessed within that function.
  • Enclosing Scope: In Python, functions can be defined within other functions. If a variable is not defined in the inner function (local scope) it will be looked for in the enclosing function.
  • Global Scope: If a variable is not found in the local or enclosing scopes, Python will look for it in the global scope. These are variables defined outside all function definitions.
  • Built-in Scope: If a variable isn’t found in any other scope, Python will look for it in the built-in scope. These are predefined variables in Python like print(), id(), etc.

Examples:

Local Scope:


def local_example():
    local_var = 'I am local'
    print(local_var)
local_example()  # prints: I am local
    

Enclosing Scope:


def outer_func():
    enclosing_var = 'I am enclosing'
    def inner_func():
        print(enclosing_var)
    inner_func()  # prints: I am enclosing
outer_func()
    

Global Scope:


global_var = 'I am global'
def global_example():
    print(global_var)
global_example()  # prints: I am global
    

Built-in Scope:


def built_in_example():
    print(len([1, 2, 3]))  # len is a built-in function
built_in_example()  # prints: 3
    

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top