Курс Python → Присвоение и ссылки
Почему присвоение не является копированием? В Python все переменные являются ссылками на объекты. Когда мы присваиваем значение одной переменной другой, мы фактически отправляем ссылку на объект в новую переменную, а не создаем копию самого объекта. Это означает, что если изменить объект через одну переменную, это изменение отразится и на другой переменной, так как они обе ссылаются на один и тот же объект.
Для проверки этого поведения можно воспользоваться функцией id(), которая возвращает уникальный идентификатор объекта. При изменении объекта через одну переменную и последующей проверке идентификаторов через другую переменную, мы увидим, что идентификаторы будут совпадать, что подтверждает, что переменные ссылаются на один и тот же объект.
Это же поведение распространяется и на строки и числа в Python. При выполнении операций с числами или строками, создается новый объект, а не изменяется существующий. Таким образом, даже если мы присваиваем новое значение переменной, это приводит к созданию нового объекта, а не изменению старого.
Интересно, что даже для чисел в Python на уровне языка программирования используется ссылочный подход. Это означает, что при работе с числами также происходит передача ссылки на объект, а не самого значения. Вы можете провести эксперимент сами, используя функцию id() и выполняя операции с числами, чтобы убедиться в этом поведении.
Другие уроки курса "Python"
- Поиск индексов подстроки
- Назначение максимального и минимального значения переменной в Python.
- Закрытие файла в Python
- Управление асинхронными задачами с помощью Semaphore
- Проблемы с dict в Python
- Функциональное программирование в Python
- Переименование файлов в Python
- Замена элементов в списке с помощью генераторов списков
- Сравнение def и lambda-функций
- Группы исключений в Python
- Применение промокода в Много лосося
- Настройка вывода в Numpy
- Создание тестовых данных с Faker
- Работа с комплексными числами
- Генераторы в Python
- Переопределение метода len
- Ускоренный импорт библиотек
- Просмотр файла в Jupyter Noteboo
- Применение функции map() в Python
- Python: Фильтрация списков с помощью filter()
- Проверка типа данных
- Генерация UUID в Python
- Функции map, filter и reduce
- Обмен переменными в Jupyter
- Курсы Яндекс Практикум
- Сортировка с помощью key
- Преобразование генераторов в циклы
- Метод getitem для доступа к элементам последовательности
- Получение текущей даты и времени
- EMOT преобразование эмодзи в текст
- Работа с переменными в Python
- Конвертация изображений в PDF
- Регистрация на TenChat
- Работа со словарями с defaultdict из collections
- Создание словаря через dict comprehension
- Работа с часовыми поясами в Python.
- Очистка данных с Pandas
- Инверсия списка и строки
- Методы __repr__ и __str__ в Python
- Красивый вывод списка
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Установка и использование Telegram API в Python
- Операции с датами в Python
- Работа с getopt
- Нан-рефлексивность в Python
- Копирование и вставка текста в Python
- Defaultdict в Python















