How to use a global variable in a function?
global-variables, python, scope
Solution
You can use a global variable within other functions by declaring it as `global` within each function that assigns a value to it:
globvar = 0
def set_globvar_to_one():
global globvar # Needed to modify global copy of globvar
globvar = 1
def print_globvar():
print(globvar) # No need for global declaration to read value of globvar
set_globvar_to_one()
print_globvar() # Prints 1
Since it's unclear whether `globvar = 1` is creating a local variable or changing a global variable, Python defaults to creating a local variable, and makes you explicitly choose the other behavior with the `global` keyword.
See other answers if you want to share a global variable across modules.
Problem
How do I create or use a global variable inside a function? How do I use a global variable that was defined in one function inside other functions? Failing to use the `global` keyword where appropriate often causes `UnboundLocalError`. The precise rules for this are explained at UnboundLocalError on local variable when reassigned after first use. Generally, please close other questions as a duplicate of that question when an explanation is sought, and this question when someone simply needs to know the `global` keyword.