Как `with` statement в Python управляет ресурсами, и какие методы он вызывает, чтобы гарантировать правильную очистку? — ДейлиПреп