Очевидно неверно утверждение, что list реализован как связный список: в CPython это динамический массив ссылок. Но вопрос неточен и в части ручного освобождения памяти и универсальности refcount.
Выберите НЕВЕРНОЕ утверждение о модели памяти Python.
Очевидно неверно утверждение, что list реализован как связный список: в CPython это динамический массив ссылок. Но вопрос неточен и в части ручного освобождения памяти и универсальности refcount.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Выберите НЕВЕРНОЕ утверждение о модели памяти Python.
- list в Python реализован как связный список
- Механизм сбора мусора Python способен удалять циклические ссылки
- Python реализует счётчик ссылок для каждого объекта
- Python переиспользует некоторые небольшие объекты, однократно выделяя под них память
- Python предоставляет возможность ручного освобождения памяти
Ответ
Очевидно неверно утверждение, что list реализован как связный список: в CPython это динамический массив ссылок. Но вопрос неточен и в части ручного освобождения памяти и универсальности refcount.
Циклический GC способен собирать недостижимые циклы, а некоторые небольшие объекты переиспользуются. Подсчёт ссылок характерен для CPython, но не является обязательной моделью всех реализаций Python. del удаляет ссылку или привязку, а не гарантированно освобождает объект и не равен free; gc.collect() лишь запускает сборку. Поэтому при ожидании одного ответа выбирают первый вариант, но на интервью стоит отметить неоднозначность последнего и привязку деталей к CPython.