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

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

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

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

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

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

Автор урока

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

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

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

  1. Python Менеджер контекста
  2. Склеивание строк без циклов
  3. Обезопасьте ввод данных
  4. Получение текущей директории
  5. Генераторы в Python
  6. Генераторы в Python
  7. Метод join() для объединения элементов
  8. Библиотека itertools: объединение списков
  9. Оператор «not» в Python
  10. Принцип одной функции
  11. PrettyTable: создание таблицы
  12. Инвертирование словаря
  13. Работа с кортежами
  14. Простой калькулятор Python
  15. Операции с матрицами в Python
  16. Курс по дообучению ChatGPT
  17. Работа с файлами в Python
  18. Метод сравнения объектов в Python
  19. Непрерывная проверка в Python
  20. Работа с WindowsPath()
  21. Проверка кортежей.
  22. Установка random seed в Python
  23. Декоратор total_ordering для сравнения объектов
  24. Метод count в Python: почему count(», ») возвращает 4?
  25. Поиск уникальных и повторяющихся элементов
  26. Генераторы в Python
  27. Оператор деления для класса Rational
  28. Работа с контекстными переменными
  29. Исправление ошибки NameError
  30. Запуск асинхронной корутины
  31. Оператор «is not» в Python
  32. Создание класса в Python
  33. Тип данных TypeVarTuple
  34. Метод __imod__ для Python
  35. Генерация случайных чисел Python
  36. Разделение строк в Python
  37. Оператор zip в Python
  38. Отправка поздравлений по дню рождения
  39. Работа с итераторами в Python
  40. Сортировка данных в Python
  41. Форматирование заголовков в Python
  42. Выражения-генераторы в Python

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