Search code examples
pythonfunctionglobal-variableslocal

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


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.


Solution

  • 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()`