Как поведет себя сборщик мусора в Python, если объект ссылается сам на себя
Python
Junior
Рунити
Как поведет себя сборщик мусора в Python, если объект ссылается сам на себя
Ответы
В Python сборщик мусора (особенно поколенный GC) умеет обнаруживать и удалять циклические ссылки, включая случаи, когда объект ссылается сам на себя. Пример:
```
class Node:
def __init__(self):
self.ref = self # циклическая ссылка на себя
node = Node()
# При удалении последней внешней ссылки объект будет собран
del node
```
Ключевые моменты:
- Сборщик мусора отслеживает такие циклические ссылки
- Объект будет удален, если на него нет внешних ссылок
- Для ручного управления можно использовать `gc.collect()`
- Метод `__del__` в таких объектах может создать проблемы - лучше избегать