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

В чем разница между контекстным менеджером и обычной функцией в Python

Контекстный менеджер (with) автоматически управляет ресурсами, гарантируя их освобождение (например, закрытие файла) даже при возникновении исключения. Обычная функция требует ручного управления.

Пример с файлом:

python
# Контекстный менеджер (автоматическое закрытие)
with open('file.txt', 'r') as f:
    data = f.read()

# Обычная функция (нужно закрывать вручную)
f = open('file.txt', 'r')
try:
    data = f.read()
finally:
    f.close()

Контекстные менеджеры реализуются через методы __enter__ и __exit__ или @contextmanager из contextlib. Они обеспечивают безопасность и читаемость кода.

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

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

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

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