Курс Python → Присвоение и ссылки
Почему присвоение не является копированием? В Python все переменные являются ссылками на объекты. Когда мы присваиваем значение одной переменной другой, мы фактически отправляем ссылку на объект в новую переменную, а не создаем копию самого объекта. Это означает, что если изменить объект через одну переменную, это изменение отразится и на другой переменной, так как они обе ссылаются на один и тот же объект.
Для проверки этого поведения можно воспользоваться функцией id(), которая возвращает уникальный идентификатор объекта. При изменении объекта через одну переменную и последующей проверке идентификаторов через другую переменную, мы увидим, что идентификаторы будут совпадать, что подтверждает, что переменные ссылаются на один и тот же объект.
Это же поведение распространяется и на строки и числа в Python. При выполнении операций с числами или строками, создается новый объект, а не изменяется существующий. Таким образом, даже если мы присваиваем новое значение переменной, это приводит к созданию нового объекта, а не изменению старого.
Интересно, что даже для чисел в Python на уровне языка программирования используется ссылочный подход. Это означает, что при работе с числами также происходит передача ссылки на объект, а не самого значения. Вы можете провести эксперимент сами, используя функцию id() и выполняя операции с числами, чтобы убедиться в этом поведении.
Другие уроки курса "Python"
- Работа с GitHub в Telegram
- Тест скорости набора текста на Python
- Flask: создание веб-приложений
- Модуль xkcd: загрузка комиксов
- Логические значения в Python
- Строки в Python: апострофы и кавычки
- F-строки в Python 3.8
- Синхронизация доступа к ресурсам
- Объединение словарей в Python
- Удаление элементов из списка
- Вывод баннеров
- Создание уникального проекта
- Документирование функций в Python
- Хеширование паролей с солью
- Непрерывная проверка в Python
- Псевдонимы в Python
- Модуль inspect: получение информации о объектах
- Итераторы в Python
- Отправка POST запроса на сервер.
- Подчеркивание в REPL
- Python enumerate() функции
- Возврат нескольких значений
- Создание списка дат
- Проверка списка: any() и all()
- Создание и удаление объектов
- Метод title() в Python
- Условное добавление элементов в список
- Основы работы с базами данных в Python
- Изменение списка срезом
- Модуль Antigravity в Python 3
- Обмен переменными в Jupyter
- Разделение функций на этапы
- Генераторы списков в Python
- Измерение времени выполнения кода
- Работа с collections.Counter
- Работа с файлами в Python
- Python Метод del.
- Проверка типа данных
- Замыкания в Python
- Основные операции с Numpy
- Проверка элементов списка условием
- Перетасовка списков в Python
- Работа с аргументами командной строки в Python
- Управление экспортом элементов
- Вычисление натуральных логарифмов в NumPy
- Декораторы в Python
- Поиск анаграмм с Counter
- kwargs в Python















