Есть ряд функций, которые по средством одной и той же функции обрабатывают заданные им переменные. То есть функция обработчик встроена в каждую из этих функций. Проблема в том, что функция обработчик взяв переменную в качестве параметра, изменяет ее но не передает в родительскую функцию. Таким образом, изменения не сохраняются. Если же переменную не передать параметром а задать как глобальную, тогда все сработает, но функция обработчик потеряет свою универсальность, и придется плодить ее и копипастить в каждой родительской функции, что не есть хорошо. Как все таки заставить встроенную функцию обработчик передавать изменения переменных? Пример кода ниже:
a = 1
b = 1
c = 1
def a_changer(a):
changer(a)
print(a)
return a
def b_changer(b):
changer(b)
print(b)
return b
def c_changer(c):
changer(c)
print(c)
return c
def changer(subject):
subject = 2
print(subject)
return subject
a_changer(a)
b_changer(b)
c_changer(c)
print(a)
print(b)
print(c)
то есть задача, чтобы на выходе переменные a,b,c принтелись как 2 а не как 1