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

Что такое связь владение

В Python связь владения (ownership) — это концепция, определяющая, какой объект отвечает за управление жизненным циклом другого объекта (например, за его удаление). Хотя в Python нет явного владения, как в Rust или C++, его можно эмулировать через сильные/слабые ссылки (weakref).

Пример:

python
import weakref

class Owner:
    def __init__(self):
        self.owned = Owned(self)  # Owner владеет Owned

class Owned:
    def __init__(self, owner):
        self.owner_ref = weakref.ref(owner)  # Слабая ссылка на Owner

owner = Owner()
# Если owner удалится, owned тоже станет недоступен через owner_ref

Нюансы:

  • Владелец обычно хранит сильную ссылку, а зависимый объект — слабую.
  • Используется для избежания циклических ссылок (memory leaks).
  • В стандартной библиотеке (threading.Lock, sqlite3.Connection) владение часто реализуется через контекстные менеджеры (with).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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