Имея этот код:
x = 10
exec('x += 5', {}, {'x': x})
print(x) # prints 10.
# This works of course
exec('x += 5')
print(x) # prints 15.
Почему он игнорирует мое x += 5
выражение? Есть ли что-то еще, что я удаляю, ограничивая глобальные / локальные значения на exec
, чтобы это не позволило изменить переменную?
P.S. Хотя это работает, если я изменяю словарь. Возможно, это связано с неизменяемыми типами?