Übergabe des Arguments von der übergeordneten Funktion an die verschachtelte Funktion Python

Hier ist mein Code:

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

Wenn ich f (0) auswerte, würde ein Fehler "x vor Zuweisung referenziert" auftreten.

Wenn ich jedoch "print x" anstelle von "x = x + 1" verwende, funktioniert dies.

Es scheint, dass ich im Rahmen von g x nur als "use happen", nicht aber als "binding happen" verwenden kann. Ich vermute, das Problem ist, dass f nur den WERT von x an g übergibt.

Verstehe ich es richtig oder nicht? Wenn nicht, kann jemand erklären, warum die linke Seite von "x = x + 1" vor dem Verweis nicht definiert ist?

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage