Sobes.tech
Junior — Middle
72

Python-da kontekst idarəçisinin həyata keçirilməsində yield açar sözündən istifadə etmək lazımdırmı?

Şirkətlər soruşuldu
AstonAston

AI-dan cavab

sobes.tech Süni İntellekt

Ключевое слово yield необходимо использовать внутри реализации контекстного менеджера, если вы создаёте его с помощью декоратора @contextmanager из модуля contextlib.

Пример:

from contextlib import contextmanager

@contextmanager
def open_file(path):
    f = open(path, 'r')
    try:
        yield f  # передаём управление и ресурс
    finally:
        f.close()

Здесь yield разделяет код на две части: до yield — подготовка ресурса, после — очистка.

Если же контекстный менеджер реализован через класс с методами __enter__ и __exit__, то yield не используется.