Przekazywanie argumentu z funkcji nadrzędnej do zagnieżdżonej funkcji Python

oto mój kod:

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

Gdy oceniam f (0), wystąpiłby błąd „x przywoływany przed przypisaniem”.

Jednak gdy użyję „print x” zamiast „x = x + 1”, zadziała.

Wydaje się, że w zakresie g mogę używać tylko x jako „wystąpienia użycia”, ale nie „zdarzenia wiążącego”. Myślę, że problem polega na tym, że f przekazuje g tylko WARTOŚĆ x.

Czy rozumiem to poprawnie? Jeśli nie, czy ktoś może wyjaśnić, dlaczego lewa strona „x = x + 1” nie jest zdefiniowana przed odniesieniem?

Dzięki

questionAnswers(2)

yourAnswerToTheQuestion