Я изучаю Python и, более конкретно, изучаю правила обзора.Lexical Scoping в Python
Я попробовал следующий «эксперимент»:
def increment(n):
n += 1
print(n)
return n
n = 1
increment(n)
print(n)
Этот фрагмент кода выхода: 2, 1. Если не она выдавала вместо 2, 2 с переменной п возвращается в глобальную окружающую среду?
Ваш совет будет оценен по достоинству.
«return' не означает« после этого, измените область действия на глобальную », но значение выражения« increment (n) »будет тогда локальным n. Поэтому вы должны сделать «n = increment (n)». – syntonym
[Здесь] (http://stackoverflow.com/questions/986006/how-do-i-pass-a-variable-by-reference) - все, что вам нужно знать. –
Возможный дубликат [Локальные и глобальные переменные в функциях python] (http://stackoverflow.com/questions/16865213/local-and-global-variables-in-python-functions) – MYGz