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

Требуется ли использовать yield в контекстном менеджере в Python

Нет, yield не требуется в контекстном менеджере, но его можно использовать для создания контекстного менеджера с помощью contextlib.contextmanager.

Пример без yield (классический способ):

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 MyContext() as ctx:
print("Inside context")

text

**Пример с yield (через `contextmanager`):**  
```python
from contextlib import contextmanager

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

with my_context():
    print("Inside context")

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

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

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

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

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