Pasando el argumento de la función principal a la función anidada Python

Aquí está mi código:

def f(x):
    def g(n):
        if n < 10:
            x = x + 1
            g(n + 1)
    g(0)

Cuando evalúo f (0), habría un error "x referenciado antes de la asignación".

Sin embargo, cuando use "imprimir x" en lugar de "x = x + 1", funcionará.

Parece que en el ámbito de g, solo puedo usar x como "ocurrencia de uso" pero no "ocurrencia de enlace". Supongo que el problema es que f pasa a g solo el VALOR de x.

¿Lo estoy entendiendo correctamente o no? Si no, ¿puede alguien explicar por qué el lado izquierdo de "x = x + 1" no está definido antes de la referencia?

Gracias