Preskoči na glavni sadržaj
🔒 Način pregleda. Prvih petnaest Foundations lekcija je besplatno; ova je Pro. Pokrenite 7-dnevni trial da otključate editor, AI savjete i ostatak programa. Kartica obavezna, otkažite bilo kada u Dashboard.Pokreni 7-dnevni trial →
← KolegijiSenior Deep-DivesModul 2 · CPython interno i performansecontextlib.contextmanagerpredict21 / 161
+75 XP
Zadatak
📝 **Pitanje:** Predvidite točan rezultat. \`track\` je generator \`@contextmanager\` koji ispisuje \`enter:\` / \`exit:\` i ima krak \`except ValueError\`. Prvi blok \`with\` je čisti rad. Drugi pokreće \`ValueError("oops")\` unutar tijela — ruši li se program prije \`print("done")\` ili ga \`with\` proguta? 📋 Odaberite pravi odgovor. 💡 **Savjet:** Ponovno pročitajte gornju teoriju ako niste sigurni.
Predvidi izlaz

Pažljivo pročitaj kod

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")

Što će program ispisati? Napiši ovdje:

💬 Rasprava

Budi prvi — postavi pitanje ili podijeli savjet.
Prijavi se kako bi se pridružio raspravi. Čitanje je besplatno.
Učitavanje rasprave…