Sobes.tech
Junior — Middle
77

Vai ir nepieciešams izmantot atslēgvārdu yield Python konteksta pārvaldnieka īstenošanā?

Uzņēmumi, kur jautāja
AstonAston

Atbilde no AI

sobes.tech AI

Ключевое слово 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 не используется.