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

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

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

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

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

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

Автор урока

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

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

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

  1. Работа с множествами в Python
  2. Запуск асинхронной корутины
  3. Генераторы списков
  4. Работа с URL-адресами в Python
  5. Функции map() и reduce() в Python
  6. Сортировка элементов с OrderedDict
  7. Python UserString — создание подклассов строк
  8. Метод __int__ в Python
  9. Функция zip() в Python
  10. Настройка Cron
  11. ROT13 Шифр Цезаря в Python
  12. Лимиты на ресурсы Python
  13. Эффективная конкатенация строк в Python
  14. Метод rsub для пользовательских чисел
  15. Декораторы в Python
  16. Проверка версии Python
  17. Работа с областями видимости переменных
  18. Измерение времени выполнения
  19. Обратное распространение ошибки
  20. Генераторы в Python
  21. Работа с библиотекой xkcd
  22. Методы Python для работы с данными
  23. Проверка элементов списка условием
  24. Основы Python за 14 дней
  25. Логический оператор «and» в Python
  26. Приоритет операций в Python
  27. Функция map() в Python
  28. Создание и удаление объектов
  29. Улучшение читаемости кода в Python
  30. Форматирование даты с strftime()
  31. Получение частей дроби
  32. Библиотека itertools: объединение списков
  33. Выборка чисел
  34. Цикл for в Python
  35. Глубокое копирование объектов
  36. Python groupby() из itertools: работа с повторяющимися элементами
  37. Операции с датами в Python
  38. Настройка нарезки списков
  39. Избегайте использования goto
  40. Удаление элементов из списка в Python
  41. Встроенные функции Python
  42. Solidity для DeFi Ethereum
  43. Повторение и перенос строки
  44. Просмотр атрибутов и методов класса
  45. Путь к интерпретатору Python
  46. Работа с CSV файлами в Python
  47. Очистка списка от False, None, 0, «»
  48. Работа с контекстным менеджером Pool
  49. Блок try-except-else

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