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

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

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

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


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

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

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

Автор урока

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

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

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

  1. Автоматизация с Python
  2. Работа с *args и **kwargs в Python
  3. Работа со слайсами
  4. Метод ior для битовых операций
  5. Срезы в Python
  6. Namedtuple в Python
  7. Преобразование данных в Python
  8. Особенности ключей словаря в Python
  9. Декораторы в Python
  10. Новшества Flask 2.0
  11. Сравнение объектов в Python
  12. Проверка элемента в множестве.
  13. Проектирование Singleton с метаклассом
  14. Преобразование списка в словарь через генератор
  15. Генератор списка с условием if
  16. Работа с пакетами
  17. Лямбда-функции в Python
  18. Форматирование строк в Python
  19. Список переменных с %who
  20. Класс-оболочка для словарей
  21. Библиотека Rich: форматирование текста
  22. Глубокое копирование объектов
  23. Переопределение метода divmod
  24. Создание функций высшего порядка
  25. Статическая типизация в Python
  26. Операторы увеличения и уменьшения переменной
  27. Создание словаря с значением по умолчанию
  28. Область видимости переменных в Python
  29. Операции со строками в Python
  30. Защита данных в Python
  31. Комментарии в Python
  32. Итерация по итерируемым объектам
  33. Логический оператор «and» в Python
  34. Обработка исключений в Python
  35. Создание списка через итерацию
  36. Создание Telegram-бота на Python
  37. Измерение времени выполнения кода с помощью time
  38. Использование метода lower()
  39. Форматирование кода на Python
  40. Обработка исключений с блоком else
  41. Декоратор Property в Python
  42. Функция с **kwargs в Python
  43. Имена объектов в Python
  44. Инверсия списка/строки в Python
  45. IPython и Jupyter Notebook: руководство
  46. Изменение IP-адреса в Python
  47. Разделение строк методом split()

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