🔥Limited Offer: Get 50% OFFon AI & Full Stack Courses🔥
Back to Python Notes
Topic #83

Python Scope


Scope

A variable is only available from inside the region it is created. This is called scope.


Local Scope

A variable created inside a function belongs to the local scope of that function, and can only be used inside that function.

Example

def myfunc():
  x = 300
  print(x)

myfunc()

Function Inside Function

As explained in the example above, the variable x is not available outside the function, but it is available for any function inside the function:

Example

def myfunc():
  x = 300
  def myinnerfunc():
    print(x)

myinnerfunc()

myfunc()

Global Scope

A variable created in the main body of the Python code is a global variable and belongs to the global scope.

Global variables are available from within any scope, global and local.

Example

x = 300

def myfunc():
  print(x)

myfunc()

print(x)

Naming Variables

If you operate with the same variable name inside and outside of a function, Python will treat them as two separate variables, one available in the global scope (outside the function) and one available in the local scope (inside the function):

Example

x = 300

def myfunc():
  x = 200

print(x)

myfunc()

print(x)

Global Keyword

If you need to create a global variable, but are stuck in the local scope, you can use the global keyword.

The global keyword makes the variable global.

Example

def myfunc():
  global x
  x = 300

myfunc()

print(x)

Also, use the global keyword if you want to make a change to a global variable inside a function.

Example

x = 300

def myfunc():
  global x
  x = 200

myfunc()

print(x)

Nonlocal Keyword

The nonlocal keyword is used to work with variables inside nested functions.

The nonlocal keyword makes the variable belong to the outer function.

Example

def myfunc1():
  x = "Jane"
  def myfunc2():
    nonlocal x
    x = "hello"
  myfunc2()
  return x

print(myfunc1())

The LEGB Rule

Python follows the LEGB rule when looking up variable names, and searches for them in this order:

  1. Local - Inside the current function
  2. Enclosing - Inside enclosing functions (from inner to outer)
  3. Global - At the top level of the module
  4. Built-in - In Python's built-in namespace

Example

x = "global"

def outer():
  x = "enclosing"
  def inner():
    x = "local"
    print("Inner:", x)
  inner()
  print("Outer:", x)

outer()
print("Global:", x)

Want to go beyond the notes?

Join CodingNow 2.0's Python course — live mentorship, real projects, and 100% placement support.

Enroll Now — Free Demo Available

Python Scope – FAQs

Quick answers about learning Python Scope in Python.

This free note from CodingNow 2.0 explains Python Scope in Python — concept, syntax and worked code examples you can copy, run and revise before interviews.
Yes. Every Python topic on CodingNow 2.0, including Python Scope, is 100% free with no signup required.
With focused practice, most students grasp Python Scope in 1–3 days from these notes; pairing it with CodingNow 2.0's mentor-led course takes you to job-ready depth faster.
Use the code examples in this note, then ask doubts for free on the CodingNow 2.0 Community (/community) — expert instructors answer within 24 hours.
WhatsApp
Call NowEnroll Now