Обновление переменной в функции Python

Рейтинг: 0Ответов: 1Опубликовано: 22.01.2023

Уважаемые коллеги, подскажите, пожалуйста следующее, как я могу реализовать обновление переменной внутри функции, при следующих условиях:

В функцию приходит объект Dictionary типа {'variable': 'value'}, в котором указано какую переменную внутри функции нужно мутировать.

Пример:

  1. Есть функция в которой есть переменная width = 100

  2. В функцию приходит аргумент mutations, внутри которого словарь {'width': 102'}

  3. При возвращении из функции width должна принять значение 102

Я понимаю, что я могу просто сделать:

if mutations:
    width = mutations.get('width') 
return width

Подразумевается, что таких мутаций может быть множество, то есть на каждую прописывать это - не вариант. Подскажите, пожалуйста, как быть? Пробовал через locals().update() - не прокатило...

Ответы

▲ 0

Решение вашей проблемы:

def generate(x_dict : dict):
    for key in x_dict:
        globals()[key] = x_dict[key]

generate({'test':'100', 'test1':'102'})

print(test) #100

Так же стоит упомянуть что такое создание переменных очень нежелательно и такое встречается очень редко. 1000% вашу задачу можно решить иначе и проще.