Scoping in python

Razique parwez
3 min readOct 25, 2022

--

It’s obvious that you cannot access a variable before it was declared. But if it was declared inside a loop, can you access it outside a loop? If it was declared in a function, can you access the variable outside of the function?

This kind of “variable lifetime” is known as scoping. After reading this article, you will know the scoping rules of Python. Let’s start!

scope

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

There are mainly two types of Scopes in Python

Python has 2 scopes:

  • Global: In the main part of the script. By default, this already contains the built-ins. You can access all global variables with globals()
  • Local: Within the current function. You can access all local variables with locals() . Within the main script, locals() == globals()

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

A variable created inside a function is available inside that function:

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

The local variable can be accessed from a function within the function:

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

A variable created outside of a function is global and can be used by anyone:

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

The function will print the local x, and then the code will print the global x:

Global Keyword

If you need to create a global variable, but if we are doing inside the local scope, you can use the global keyword.

The global keyword makes the variable global.

Example

If you use the global keyword, the variable belongs to the global scope:

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

Example

To change the value of a global variable inside a function, refer to the variable by using the global keyword:

--

--

Razique parwez
Razique parwez

No responses yet