5
foo(x)
# теперь x 10
тебе на два умножить число надо чи шо?
x = 5 foo(x) print(x) # будет 10
ну да, придумай чета
Это же мутация переменной
Можно, но не нужно. Всё равно ни для чего, кроме похвастаться "смотрите, как я могу", использовать это не получится
Да, поэтому и говорю чёрной магией
Да вот, мне для забавы ради, PoC
Ну, навскидку sys._getframe(), добраться до места вызова, расковырять байткод, понять из какой переменной достали переданное значение, поменять её в нужном скоупе
Так-то даже если просто взять locals() и что-то там поменять, гарантий, что переменная изменит значение, нет
Обсуждают сегодня