Search notes:

Python: statement nonlocal

def outer():
    x = 10
    def inner():
        print(x)   # Prints 10
    inner()

outer()
def outer():
    x = 10
    def inner():
        x = 20

    inner()
    print(x)   # Prints 10

outer()
def outer():
    x = 10
    def inner():
        nonlocal x
        x = 20

    inner()
    print(x)   # Prints 20

outer()

See also

The global statement
statements

Index