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

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

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

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

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

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

Автор урока

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

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

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

  1. Новшества Flask 2.0
  2. Работа с модулем bisect
  3. Метод splitlines() для разделения строк
  4. Игра Виселица на Python
  5. Списки в Python
  6. Работа с множествами в Python
  7. Равенство и идентичность в Python
  8. Множественное присваивание в Python
  9. Хранение данных
  10. Тест скорости набора текста на Python
  11. Генератор бросков кубиков
  12. Python 3.12: Псевдонимы типов
  13. Работа с файлами в Python
  14. Атрибуты объекта в Python
  15. Декораторы в Python
  16. Встроенные функции Python
  17. Работа с географическими данными в Python
  18. Область видимости переменных
  19. Python Метод sleep() времени
  20. Оптимизация памяти с помощью __slots__
  21. Настройка вывода в Numpy
  22. Объединение строк с помощью метода join
  23. Работа с zip-архивами в Python
  24. Установка виртуального окружения Python
  25. Работа со словарями Python
  26. Декоратор для группы пользователей в Django
  27. Абстракции словарей и множеств в Python
  28. Декоратор Ajax required
  29. Методы Python для работы с данными
  30. Проверка запуска скрипта или импорта модуля
  31. Порядок операций в Python
  32. Условные выражения в Python
  33. Генерация случайных чисел в Python
  34. Создание пар из последовательностей
  35. Тип данных TypeVarTuple
  36. Python Calendar Usage
  37. Разбиение текста в Python
  38. Секреты Python
  39. Разделение строки с помощью split()
  40. Списковое включение в Python
  41. Имена объектов в Python
  42. Построение графиков в Matplotlib
  43. Структурирование именованных констант
  44. Удаление ключей из словаря
  45. Работа с модулем Calendar
  46. Правила именования переменных
  47. Комментарии в Python

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