Как изменить значение переменной в функции в Python?
Я бы попробовал следующие пару вариантов:
Использование ключевого слова global
. Если переменная определена в глобальной области видимости, вы можете использовать ключевое слово global
для изменения ее значения внутри функции. Например:
x = 1
def my_function():
global x
x = 2
my_function()
print(x) # 2
Возврат измененного значения. Функция может возвращать измененное значение переменной, которое затем можно присвоить исходной переменной. Например:
def increment(x):
return x + 1
x = 1
x = increment(x)
print(x) # 2
В Python изменение значения переменной в функции зависит от типа переменной и способа ее использования.
Для изменения локальной переменной внутри функции просто присвойте ей новое значение:
def change_local():
x = 10
# Изменяем локальную переменную
x = 20
# Выведет 20
print(x)
Для изменения глобальной переменной испольуем ключевое слово global
:
x = 10
def change_global():
global x
# Изменяем глобальную переменную
x = 20
Для изменения переменной во внешней функции используем nonlocal
:
def outer():
x = 10
def inner():
nonlocal x
# Изменяем переменную из внешней функции
x = 20
inner()
# Выведет 20
print(x)
Важно добавит, что изменение глобальных переменных может сделать код более подверженным ошибкам. Старайтесь не использовать глобальные переменные насколько это возможно.