How to make a local variable (inside a function) global

user1396297 picture user1396297 · Dec 27, 2012 · Viewed 205.2k times · Source

Possible Duplicate:
Using global variables in a function other than the one that created them

I'm using functions so that my program won't be a mess but I don't know how to make a local variable into global.

Answer

Alex L picture Alex L · Dec 27, 2012

Here are two methods to achieve the same thing:

Using parameters and return (recommended)

def other_function(parameter):
    return parameter + 5

def main_function():
    x = 10
    print(x)    
    x = other_function(x)
    print(x)

When you run main_function, you'll get the following output

>>> 10
>>> 15

Using globals (never do this)

x = 0   # The initial value of x, with global scope

def other_function():
    global x
    x = x + 5

def main_function():
    print(x)    # Just printing - no need to declare global yet
    global x   # So we can change the global x
    x = 10
    print(x)
    other_function()
    print(x)

Now you will get:

>>> 0    # Initial global value
>>> 10   # Now we've set it to 10 in `main_function()`
>>> 15   # Now we've added 5 in `other_function()`