Я создаю переменные и помещаю их в список, чтобы проходить по нему и менять значения этих переменных через функцию.
var_1 = 0
var_2 = 0
var_3 = 0
vars = [var_1, var_2, var_3]
def func(x, y):
vars[x] = 1 if y else 0
print(f'vars: {vars}, var_1: {var_1}, is: {var_1 is vars[0]}') # vars: [0, 0, 0], var_1: 0, is: True
func(0, 1)
print(f'vars: {vars}, var_1: {var_1}, is: {var_1 is vars[0]}') # vars: [1, 0, 0], var_1: 0, is: False
Список vars у меня один (это не копия, как я понимаю), в нём хранятся объявленные переменные, но обращаясь по индексу к переменной в списке, я не меняю первоначальную переменную, а меняю - что?
почему var_1 и vars[0] - не одно и то же?