Встречается на собеседованиях • сегодня
Использовались ли weakref на проектах
Да, weakref использовался в проектах, особенно там, где нужно избегать циклических ссылок, которые мешают сборщику мусора.
Пример:
python
import weakref
class Node:
def __init__(self, value):
self.value = value
self._parent = None
text
@property
def parent(self):
return self._parent() if self._parent else None
@parent.setter
def parent(self, node):
self._parent = weakref.ref(node) # Слабая ссылкаa = Node(1)
b = Node(2)
a.parent = b # Нет циклической зависимости
text
**Где применяется:**
- Кэширование без удержания объектов в памяти.
- Объекты с сложными взаимосвязями (например, деревья или графы).
- Коллбэки, чтобы избежать утечек памяти.
**Нюансы:**
- Нужно проверять, что объект ещё существует (`ref()` возвращает `None`, если объект удалён).
- Не работает со списками, словарями (нужен `WeakKeyDictionary`, `WeakValueDictionary`).
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы