Python locals() Function
The locals()
function returns the local symbol table as a dictionary. It contains information about all local variables for the current program.
Syntax
locals()
locals() Parameters
Python locals()
function has no parameters.
locals() Return Value
Python locals()
function returns the dictionary of the current local symbol table.
Examples
Example 1: Basic Usage
Let's see basic usage of locals()
function:
x = 10
y = 20
print(locals()) # Output: {'x': 10, 'y': 20, and other variables...}
output
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7f360c301dc0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'main.py', '__cached__': None, 'x': 10, 'y': 20}
Example 2: Modifying the Namespace
Let's modify the Namespace using locals()
function:
x = 10
print(x) # Output: 10
local_vars = locals()
local_vars['x'] = 20
print(local_vars['x']) # Output: 20
output
10
20
Symbol Table
What is a symbol table?
A symbol table is maintained by a compiler. It contains necessary information about the current program.
There are two kinds of symbol table:
- Local symbol table contains information related to the local scope of the program
- Global symbol table contains information related to the global scope of the program
Why is it necessary?
Python gives the programmer a large number of tools for introspecting the running environment. locals()
is just one of those, and it can be very useful in a debugging session to see what objects the local scope actually contains.
Global and Local Scope
A variable declared outside a function has a Global Scope and can be accessed inside or outside of a function. But you can not update it inside a function.
However, a variable declared within a function has a Local Scope and can only be accessed within that function.
x = 5 # global scope
def myfunc():
x = 10 # local scope
print('x inside function is', x)
myfunc() # Output: x inside function is 10
print('x outside function is', x) # Output: x outside function is 5
Access local variables
As locals()
method returns a dictionary, you can perform any operation that a dictionary supports, like indexing, iteration etc.
For example get the value of local variable x
:
x = 10
print(locals()['x']) # Output: 10
output
10
Modify local variables
Using locals()
function you can update a local variable, e.g. inside a function.
For example, update local variable x inside a function:
def myfunction():
x = 123
print(x) # Output: 123
locals()['x'] = 456
print(x) # Output: 456
myfunction()
output
123
456