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

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

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

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

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

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

Автор урока

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

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

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

  1. Работа с итераторами в Python
  2. Библиотека wikipedia для Python
  3. Взаимодействие с внешними процессами в Python
  4. Реализация метода __abs__ в Python
  5. Метод __imod__ для Python
  6. Работа с CSV файлами в Python
  7. Сортировка с параметром key
  8. Тестирование времени с Freezegun
  9. Метод enumerate() в Python
  10. Присвоение значений переменным в Python
  11. Комментарии в Python
  12. Установка Git и AWS CLI
  13. Моржовый оператор в Python 3.8
  14. Оптимизация гиперпараметров в Python
  15. Управление мышью и клавиатурой с Pyautogui
  16. Метод ior для битовых операций
  17. Генераторы словарей и множеств
  18. Библиотека Chartify: руководство
  19. Операция += для списков
  20. Встраивание HTML в Jupyter Notebook
  21. Форматирование даты с strftime()
  22. Управление доступом к модулю
  23. Метод count() для списка
  24. Метод ne для сравнения объектов
  25. Метод split() для разделения строк
  26. Модуль Antigravity в Python 3
  27. List Comprehension Tutorial
  28. Разделение строки на пары ключ-значение.
  29. Анонимные функции в Python
  30. Выражения-генераторы в Python
  31. Форматирование данных с помощью pprint
  32. Многоточие в Python
  33. Работа с GitHub в Telegram
  34. Атрибуты класса и экземпляра
  35. Принцип одной функции
  36. Проверка дублей в списке.
  37. Тест скорости набора текста на Python
  38. Создание коллекций из выражения-генератора
  39. Генераторы списков в Python
  40. Функции в Python
  41. Работа с timedelta
  42. Распаковка аргументов в Python
  43. Метод lt для сортировки объектов
  44. Отрицательные индексы списков
  45. Хеширование паролей с использованием salt
  46. Метод rename() для переименования файлов и каталогов
  47. Генерация случайных чисел Python
  48. Обезопасьте ввод данных
  49. Функции с необязательными аргументами

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