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

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

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

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

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

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

Автор урока

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

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

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

  1. Повторение элементов списков
  2. Метод split() для разделения строк
  3. Работа с модулем cmath
  4. Создание класса очереди
  5. Списки в Python: основы
  6. Отладчик pdb: начало работы
  7. kwargs в Python
  8. Lambda Functions in Python
  9. Особенности запятых в Python
  10. Раздувающийся словарь в Python
  11. Загрузка постов Instagram
  12. Подсчет частоты элементов с Counter
  13. Работа с модулем os в Python
  14. Создание пар из последовательностей
  15. Работа со словарями Python
  16. TypedDict для kwargs в Python 3.12
  17. Курс Data Scientist в медицине
  18. Расчет времени выполнения
  19. Работа с массивами в Python
  20. Структура данных deque в Python
  21. Сортировка элементов с OrderedDict
  22. Условное добавление элементов в список
  23. Названия столбцов в Python таблицах
  24. Генераторы в Python
  25. Именованные срезы в Python
  26. Класс-оболочка для словарей
  27. Возврат нескольких значений
  28. Перемещение и удаление файлов в Python
  29. Генераторы в Python
  30. Запрос DELETE с библиотекой requests
  31. Форматирование даты с strftime()
  32. Поиск элементов BeautifulSoup
  33. Генератор надежных паролей
  34. Проверка окончания строки с помощью str.endswith()
  35. Декораторы в Python
  36. Разделение строки с помощью split()
  37. Создание GUI на Tkinter
  38. Подписка на SelectelNews в Twitter
  39. Подсчет количества элементов в списке
  40. Тестирование с unittest
  41. Enum в Python
  42. Управление памятью в Python
  43. Работа с enumerate()
  44. Python defaultdict добавление ключа
  45. Модуль Antigravity в Python 3
  46. Копирование и вставка текста в Python
  47. Метод hash в Python

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