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

Какие бывают контекстные менеджеры

В Python контекстные менеджеры позволяют управлять ресурсами, автоматически выделяя и освобождая их. Основные виды:

  1. Встроенные (with statement):
python
with open('file.txt', 'r') as f:
    content = f.read()
  1. Классы с методами __enter__ и __exit__:
python
class MyContext:
    def __enter__(self):
        print("Entering")
        return self
    
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Exiting")

with MyContext() as ctx:
print("Inside context")

text

3. **Функциональные через `contextlib`**:
```python
from contextlib import contextmanager

@contextmanager
def my_context():
    print("Entering")
    yield
    print("Exiting")

with my_context():
    print("Inside")
  1. Асинхронные (Python 3.7+):
python
async with aiohttp.ClientSession() as session:
    async with session.get(url) as resp:
        data = await resp.json()

Контекстные менеджеры гарантируют правильное освобождение ресурсов даже при возникновении исключений.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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