Присвоение переменной имени, заданного в параметре вызова функции
Можно ли задать глобальную переменную в Python с именем, которое будет в параметре данной функции? Понимаю, что это очень плохой стиль и ведет к множеству проблем, но существует ли такая возможность?
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Ну это легко делается через globals():
def set_global_var(name, value):
globals()[name] = value
set_global_var("something", "anything")
print(something)
Вывод:
anything
Автор решения: vadim vaduxa
→ Ссылка
import sys
A = 1
def exp1(**kwargs):
globals().update(kwargs)
def exp2(**kwargs):
module = sys.modules[__name__]
for name in kwargs:
setattr(module, name, kwargs[name])
print(A) # 1
exp1(A=2)
print(A) # 2
exp1(A=3)
print(A) # 3