База Hintsage

Программирование Python

Язык Python и его модель данных.

Темы раздела

Выберите подраздел

Практика

Вопросы: Программирование Python

Разберите ситуацию: какие методы контекстных менеджеров будут вызваны, если второй менеджер не смог войти в составной блок 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")

Показано 181200 из 348