База Hintsage

Функции и декораторы

Замыкания, decorators, callable-объекты и управление контекстом.

Практика

Вопросы: Функции и декораторы

Разберите ситуацию: какие методы контекстных менеджеров будут вызваны, если второй менеджер не смог войти в составной блок with?

class M:
    def __init__(self, name, fail=False):
        self.name, self.fail = name, fail

    def __enter__(self):
        print("enter", self.name)
        if self.fail:
            raise RuntimeError(self.name)
        return self

    def __exit__(self, *exc):
        print("exit", self.name)
        return False

with M("A") as a, M("B", True) as b:
    print("body")

Показано 1–20 из 50