@Span4ev

Какую переменную я меняю в списке?

Я создаю переменные и помещаю их в список, чтобы проходить по нему и менять значения этих переменных через функцию.

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] - не одно и то же?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
@bacon
в нём хранятся объявленные переменные
нет, в нем хранятся ссылки на те же объекты, с которыми связаны переменные. А изменении связи уже зависит от мутабельность/иммутабельность объекта.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы