keyword nonlocal en Python

La keyword nonlocal en Python se usa para trabajar con variables dentro de funciones anidadas, donde la variable no debe pertenecer a la función interna.

Utilice la palabra clave nonlocal para declarar que la variable no es local.

Ejemplo

Haz una función dentro de una función, que usa la variable x como una variable no local:

def myfunc1():
  x = "Pepe"
  def myfunc2():
    nonlocal x
    x = "Hola"
  myfunc2()
  return x

print(myfunc1())

Ejemplo

El mismo ejemplo anterior, pero sin la palabra clave nonlocal:

def myfunc1():
  x = "Pepe"
  def myfunc2():
    x = "Hola"
  myfunc2()
  return x

print(myfunc1())

La Keyword global se usa para hacer variables globales.