Библиотека собеса по Python | вопросы с собеседований
6.05K subscribers
682 photos
14 videos
564 links
Вопросы с собеседований по Python и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/6587aafa

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Как спроектировать контекстные менеджеры так, чтобы ресурсы гарантированно освобождались даже при отмене/исключениях (sync/async)?

Реализуйте __enter__/__exit__ или __aenter__/__aexit__, делайте освобождение идемпотентным и безопасным к повторному вызову, в __exit__ не глотайте исключения без нужды (возвращайте False). Для композиции используйте contextlib.ExitStack/AsyncExitStack, для потоков/соединений — async with/aclose. В корутинах без менеджера — try/finally. Критические закрытия при отмене можно кратко «экранировать» (shield) ради целостности.

Библиотека собеса по Python