In this post we’ll see what is global keyword in Python and how to use it.
To understand global keyword better an understanding of local, global and nonlocal variables is required, as a requisite please go through this post- Local, Nonlocal And Global Variables in Python
Some important points that you should know about local and global variables in Python-
- Variables that are declared outside a function are known as global variables in Python. There is no need to qualify these variables with global keyword such variables have global scope by default.
- When a variable is declared inside a function then it is a local variable. A local variable’s scope is limited with in the function where it is created.
- If you declare a variable inside a function having the same name as the global variable then with in the scope of the method local variable overshadows the global variable.
Python global keyword
When you want to use a global variable inside a function you can qualify a variable with global keyword inside the function body.
For example-
def myfunction(): global x ..... .....
Using global keyword in Python
The third point mentioned above “If you declare a variable inside a function having the same name as the global variable then with in the scope of the method local variable overshadows the global variable.” is the basis for using global keyword in Python. To understand it let’s go through few scenarios.
Variable with same name in both global and local scope
#global variable x = 10 def myfunction(): # local variable x = 7 print('x inside function', x) myfunction() print('x outside function', x)
Output
x inside function 7 x outside function 10
As you can see local variable x inside the function overshadows the global variable x with in the limit of the function. Outside the function scope changes to global variable.
Modifying global variable with in a function
You may have a scenario where you’d want to modify global variable with in a function.
#global variable x = 10 def myfunction(): #modify global variable x = x+2 print('x inside function', x) myfunction() print('x outside function', x)
Output
File "F:/NETJS/NetJS_2017/Python/Test/HelloWorld.py", line 8, in <module> myfunction() File "F:/NETJS/NetJS_2017/Python/Test/HelloWorld.py", line 5, in myfunction x = x+2 UnboundLocalError: local variable 'x' referenced before assignment
As you can see trying to modify global variable with in the function results in an error ‘UnboundLocalError: local variable 'x' referenced before assignment’ because Python looks for variable x with in the function which is not found thus the error.
Examples using global keyword in Python
So we have seen the scenarios where trying to access global variable with in the method is required and that’s where Python global keyword is used.
Modifying global variable with in a function
If you want to modify global variable inside a function then the variable needs to be declared using global keyword with in the function. That way you can modify global variable with in the local context.
#global variable x = 10 def myfunction(): global x #modify global variable x = x+2 print('x inside function', x) myfunction() print('x outside function', x)
Output
x inside function 12 x outside function 12
As you can see now global variable can be changed with in the function.
Creating a global variable from a local scope
By qualifying a variable with global keyword inside a function you can create a global variable inside a function that can be used outside the function too.
def myfunction(): # global variable from local scope global x x = 7 print('x inside function', x) myfunction() print('x outside function', x)
Output
x inside function 7 x outside function 7
That's all for this topic Global Keyword in Python With Examples. If you have any doubt or any suggestions to make please drop a comment. Thanks!
>>>Return to Python Tutorial Page
Related Topics
You may also like-