Переменные в Python похожи на ссылочные переменные, поэтому лучше представлять их как этикетки, приклеенные к объектам.
Следующий пример поможет понять, почему.
>>> a = [1, 2, 3]
>>> b = a
>>> a.append(4)
>>> b
>>> [1, 2, 3, 4]
1. Создать список [1, 2, 3] и связать с ним переменную
a2. Связать переменную
b с тем же значением, на которое ссылается a. 3. Изменить список, на который ссылается
a, добавив в конец еще один элемент. 4. Можно наблюдать, как это отразилось на переменной
b. 5. Если считать
b ящиком, в котором хранилась копия списка [1, 2, 3] из ящика a, то такое поведение бессмысленно.Таким образом, предложение
b = a не копирует содержимое ящика a в ящик b, а наклеивает метку b на объект, уже имеющий метку a.Для правильного понимания присваивания в Python всегда сначала читайте правую часть, ту, где объект создается или извлекается. Уже после этого переменная в левой части связывается с объектом – как приклеенная к нему этикетка. А о ящиках забудьте.
Поскольку переменные – это просто этикетки, ничто не мешает наклеить на объект несколько этикеток. В этом случае образуются псевдонимы.
Тем самым оператор
is проверяет, что разные этикетки наклеены на один и тот же ящик.А оператор
== проверяет, что разные ящики имеют одинаковое содержимое.——————————-
📱 TG-сообщество
📱 Обучение
📱 Отзывы
