Курс Python → Удаление ссылок в Python

В Python оператор del используется для удаления ссылки на объект, что может привести к освобождению памяти, если на объект больше нет ссылок. Однако, в некоторых случаях операция del может казаться упрямой, особенно при работе в интерактивном режиме.

Например, если создать объект в интерактивном интерпретаторе и попытаться удалить его с помощью del, но предыдущий оператор создаст другую ссылку на этот объект, то операция del не выполнится. Это происходит потому, что объект не будет удален до тех пор, пока на него есть хотя бы одна ссылка.

Для примера, предположим, что у нас есть объект y и мы хотим его удалить с помощью del y. Однако, если предыдущий оператор создает новую ссылку на объект, например, через магическую переменную _, то операция del y не выполнится до тех пор, пока на объект есть хотя бы одна ссылка.


>>> y = "Hello"
>>> _
'Hello'
>>> del y

Чтобы действительно удалить объект, необходимо убедиться, что на него больше нет ссылок. Например, вызов функции globals() может привести к изменению ссылок и, в результате, к удалению объекта. Только после того, как количество ссылок на объект достигнет нуля, операция del будет выполнена и объект будет удален из памяти.

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

Автор урока

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

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

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

  1. Логические операторы в Python
  2. Декораторы для регистрации функций
  3. Многоточие в Python
  4. Замеры производительности в Python
  5. Логирование с Logzero
  6. Функции с дополнением
  7. Измерение потребления памяти при сортировке
  8. Объединение словарей в Python
  9. Выборка чисел
  10. Копирование списков в Python
  11. Декораторы с аргументами
  12. Работа с f-строками 2.0
  13. kwargs в Python
  14. Декоратор @override
  15. Оператор continue в Python
  16. Ветвление выражения в Python
  17. Функции в Python
  18. Возврат значений из генератора
  19. Работа с срезами в Python
  20. Работа с YAML в Python
  21. Заказ карты Тинькофф Black
  22. Переопределение метода __floordiv__
  23. Обработка ошибок ввода данных
  24. Работа с датой и временем в Python
  25. Python Аргументы по умолчанию
  26. Поиск наиболее частого элемента
  27. Проверка элемента в множестве.
  28. Особенности запятых в Python
  29. Преобразование многоуровневого словаря
  30. Создание и операции с дробями
  31. Изменение IP-адреса в Python
  32. Метод join() для объединения строк
  33. Оптимизация памяти с __slots__
  34. Список методов и атрибутов
  35. Подсказки при вводе данных в Python
  36. Генераторы данных
  37. Переопределение метода xor в Python
  38. Исключение NotImplementedError
  39. Оптимизация строк в Python
  40. Сериализация объектов в Python
  41. Функция product() в Python
  42. Возвращение нескольких значений
  43. Проверка на истинность объектов в Python
  44. Преобразование вложенного списка

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