Как изменить значение переменной в функции в Python?

Аватар пользователя Алексей Алешин
Алексей Алешин
14 марта 2023

Я бы попробовал следующие пару вариантов:

Использование ключевого слова 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
1 0
Аватар пользователя Ivan Mamtsev
Ivan Mamtsev
21 августа 2024

В 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)

Важно добавит, что изменение глобальных переменных может сделать код более подверженным ошибкам. Старайтесь не использовать глобальные переменные насколько это возможно.

0 0