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

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

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

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

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

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

Автор урока

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

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

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

  1. Разделение строки с регулярными выражениями
  2. Функция reduce() в Python
  3. Оптимизация памяти с __slots__
  4. Глобальные переменные в Python
  5. Работа с f-строками 2.0
  6. Переворот строки с помощью срезов
  7. Избегайте пустого списка
  8. Оптимизация параметров в Python
  9. Функция enumerate в Python
  10. Работа с CSV файлами
  11. Модуль functools в Python
  12. Работа с множествами в Python
  13. Объединение списков с помощью zip
  14. Удаление элемента из списка
  15. Модуль xkcd: добавление юмора в Python
  16. Равенство и идентичность в Python
  17. Проверка версии Python
  18. Работа с NumPy
  19. Порядок и длина множеств в Python
  20. Оператор is в Python
  21. Блок else в циклах.
  22. Создание и удаление объектов
  23. Отладчик pdb: начало работы
  24. Установка пакетов с помощью pip
  25. Создание тестовых данных с Faker
  26. Изменение элемента списка
  27. Измерение времени выполнения кода
  28. Colorama: окрашивание текста в Python
  29. Установка Python3.7 и PIP
  30. Принципы SRP и OCP
  31. Область видимости переменных
  32. Преобразование символов с помощью map
  33. Возвращение нескольких значений через кортеж или класс
  34. Создание класса в Python
  35. Получение текущей даты и времени с помощью datetime
  36. Цикл for в Python
  37. Установка и использование howdoi
  38. Сортировка HTML по CSS-селектору
  39. Добавление Progressbar в Python
  40. Создание панели меню Tkinter
  41. Объединение словарей в Python
  42. Оптимизация памяти в Python
  43. Создание словарей и множеств в Python.
  44. Декораторы в Python
  45. Секреты Python
  46. Создание уникального проекта
  47. lru_cache оптимизация функций

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