Курс Python → Присвоение и ссылки

Почему присвоение не является копированием? В Python все переменные являются ссылками на объекты. Когда мы присваиваем значение одной переменной другой, мы фактически отправляем ссылку на объект в новую переменную, а не создаем копию самого объекта. Это означает, что если изменить объект через одну переменную, это изменение отразится и на другой переменной, так как они обе ссылаются на один и тот же объект.

Для проверки этого поведения можно воспользоваться функцией id(), которая возвращает уникальный идентификатор объекта. При изменении объекта через одну переменную и последующей проверке идентификаторов через другую переменную, мы увидим, что идентификаторы будут совпадать, что подтверждает, что переменные ссылаются на один и тот же объект.

Это же поведение распространяется и на строки и числа в Python. При выполнении операций с числами или строками, создается новый объект, а не изменяется существующий. Таким образом, даже если мы присваиваем новое значение переменной, это приводит к созданию нового объекта, а не изменению старого.

Интересно, что даже для чисел в Python на уровне языка программирования используется ссылочный подход. Это означает, что при работе с числами также происходит передача ссылки на объект, а не самого значения. Вы можете провести эксперимент сами, используя функцию id() и выполняя операции с числами, чтобы убедиться в этом поведении.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Python reversed() функция
  2. Установка и использование pyshorteners
  3. Символ подчеркивания в Python
  4. Установка пакетов с помощью pip
  5. Повторение элементов в Python
  6. Поиск самого частого элемента
  7. Изменение списка срезами
  8. Комментарии в Python
  9. Класс-оболочка для словарей
  10. Избегание циклических зависимостей классов в Python
  11. Оператор in для Python
  12. Изменения в обработке логических значений
  13. Разделение списка на гнппы
  14. Метод pos в Python
  15. Переворот последовательности
  16. kwargs в Python
  17. Склеивание строк через метод join()
  18. Python Enum Weekday Usage
  19. Создание матрицы в Python
  20. Создание пустых функций и классов в Python
  21. Получение ID текущего процесса
  22. Аргумент по умолчанию
  23. Многопроцессорное программирование в Python
  24. Импорт модулей в Python 3.12
  25. Enum в Python: создание и использование перечислений
  26. Основы работы со списками
  27. Добавление цвета в консоли
  28. Функции map() и reduce() в Python
  29. Локальные переменные.
  30. Изменение списка срезом
  31. Разделение строк в Python
  32. Методы shutil для работы с файлами
  33. Генерация UUID в Python
  34. Проверка на палиндром
  35. Запуск файлового сервера
  36. Оптимизация создания строк
  37. Операции с числами в Python
  38. Преобразование многоуровневого словаря
  39. Реализация метода __abs__ в Python
  40. Наследование в программировании
  41. Модуль antigravity: генерация координат
  42. Python Тесты и Гайды
  43. Измерение времени выполнения кода в Python
  44. Генераторы в Python
  45. Работа с YAML в Python
  46. Хранение данных с помощью dataclasses
  47. Импорт модулей и пакетов в Python
  48. Flask — веб-фреймворк Python
  49. Порядок и длина множеств в Python

Marketello читают маркетологи из крутых компаний