Встречается на собеседованиях • сегодня

Какой жизненный цикл объекта в Python

Объект в Python проходит следующие этапы жизненного цикла:

  1. Создание - объект создается при вызове конструктора (__new__) и инициализируется (__init__).
  2. Использование - объект доступен в программе, на него могут ссылаться переменные.
  3. Уничтожение - когда ссылок на объект не остается, сборщик мусора вызывает __del__ (если определен) и освобождает память.

Пример:

python
class Test:
    def __init__(self, name):
        self.name = name
        print(f"Создан {self.name}")
    
    def __del__(self):
        print(f"Удален {self.name}")

a = Test("obj1")  # Создание
b = a             # Новая ссылка
del a             # Удаление ссылки
del b             # Удаление последней ссылки -> вызов __del__

Важные нюансы:

  • __del__ вызывается не сразу после удаления последней ссылки, а когда срабатывает сборщик мусора
  • Циклические ссылки могут предотвратить автоматическое удаление
  • Для явного управления ресурсами лучше использовать контекстные менеджеры (with)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы