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

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

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

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


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

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

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

Автор урока

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

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

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

  1. Использование функции product
  2. Поиск самого длинного слова в списке с использованием max()
  3. Подсчет элементов с помощью Counter
  4. Упрощенный вывод данных в Python
  5. Управление браузером с Selenium
  6. Оптимизация памяти в Python
  7. Распаковка аргументов в Python
  8. Работа с географическими данными в Python
  9. Преобразование текста в речь с Python
  10. Копирование объектов в Python
  11. Установка и использование emoji
  12. Python Метод del.
  13. Многострочные строки в Python
  14. Библиотека Emoji: использование смайлов в Python
  15. Переопределение метода __rshift__
  16. Простой калькулятор Python
  17. Python Метод sleep() времени
  18. Функция divmod() в Python
  19. Удаление знаков препинания в Python
  20. Инвертирование словаря
  21. Оптимизация методов в Python 3.7
  22. Функция zip() в Python
  23. Получение идентификатора объекта в памяти
  24. Просмотр файла в Jupyter Noteboo
  25. Каналы Senior: Python, Java, Frontend, SQL, C++
  26. Расчет времени выполнения кода
  27. Декораторы в Python
  28. Docstring в Python
  29. Профилирование с Pandas
  30. Метод classmethod
  31. Подписка на Kaspersky Team
  32. Метод split() в Python
  33. Отображение HTML кода в Python
  34. Работа с изображениями Pillow
  35. Работа с JSON данными в Python
  36. Явный импорт переменных
  37. Операторы увеличения и уменьшения в Python
  38. Просмотр атрибутов и методов класса
  39. Метод join() для объединения строк
  40. Манипуляция формой массива в Numpy
  41. Функции range() в Python
  42. Метод rrshift для пользовательских объектов
  43. Область видимости переменных
  44. Добавление элементов в список: append() vs extend()
  45. Извлечение новостей с помощью newspaper3k
  46. Работа со случайными элементами

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