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

Как написать контекстный менеджер без with в Python

Контекстный менеджер можно использовать без with, вызывая его методы __enter__() и __exit__() вручную. Пример:

python
class MyContext:
    def __enter__(self):
        print("Entering context")
        return self
text
def __exit__(self, exc_type, exc_val, exc_tb):
    print("Exiting context")

Использование без with

ctx = MyContext()
obj = ctx.enter()
try:
print("Inside context")
finally:
ctx.exit(None, None, None)

text

Важно обернуть код в `try-finally`, чтобы гарантировать вызов `__exit__()` даже при возникновении исключения. Однако использование `with` предпочтительнее, так как делает код чище и безопаснее.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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