Перейти до основного вмісту
🔒 Режим прев'ю. Перші 15 уроків Foundations — безкоштовні; цей — Pro. Запусти 7-денний trial щоб відкрити редактор, AI-підказки і решту курсу. Потрібна картка, скасування в Dashboard у будь-який момент.Почати 7-денний trial →
← КурсиSenior Deep-DivesМодуль 2 · Внутрішні елементи та продуктивність CPythoncontextlib.contextmanagerpredict21 / 161
+75 XP
Завдання
📝 **Питання:** Спрогнозуйте точний результат. \`track\` — це генератор \`@contextmanager\`, який друкує \`enter:\` / \`exit:\` і має руку \`except ValueError\`. Перший блок \`with\` - чистий запуск. Другий викликає \`ValueError("oops")\` всередині тіла — чи програма аварійно завершує роботу перед \`print("done")\`, чи \`with\` її проковтує? 📋 Виберіть правильну відповідь. 💡 **Підказка:** Перечитайте наведену вище теорію, якщо не впевнені.
Передбач вивід

Прочитай код уважно

from contextlib import contextmanager


@contextmanager
def track(label):
    print(f"enter:{label}")
    try:
        yield label.upper()
    except ValueError as e:
        print(f"caught:{e}")
    finally:
        print(f"exit:{label}")


with track("a") as t:
    print(f"body:{t}")

with track("b") as t:
    print(f"body:{t}")
    raise ValueError("oops")

print("done")

Що виведе програма? Напиши тут:

💬 Обговорення

Будьте першим — поставте запитання або поділіться порадою.
Увійдіть щоб приєднатися до обговорення. Читання безкоштовне.
Завантаження обговорення…