Ugrás a fő tartalomra
🔒 Előnézet mód. Az első tizenöt Foundations lecke ingyenes; ez Pro. Indíts 7 napos trial-t, hogy feloldd a szerkesztőt, az AI tippeket és a tananyag többi részét. Kártya szükséges, bármikor lemondhatod a Dashboard-ban.7 napos trial indítása →
← KurzusokSenior Deep-Dives2. modul · CPython belsők és teljesítménycontextlib.contextmanagerpredict21 / 161
+75 XP
Feladat
📝 **Kérdés:** Jósolja meg a pontos kimenetet. A \`track\` egy \`@contextmanager\` generátor, amely kiírja az \`enter:\` / \`exit:\` karakterláncot, és van egy \`kivéve ValueError\` karja. Az első \`with\` blokk egy tiszta futás. A második a \`ValueError("hoppá")\` jelet emeli a törzsben – a program összeomlik a \`print("done")\` előtt, vagy a \`with\` lenyeli? 📋 Válassza ki a megfelelő választ. 💡 **Tipp:** Ha nem biztos benne, olvassa el újra a fenti elméletet.
Találd ki a kimenetet

Olvasd el a kódot figyelmesen

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

Mit ír ki a program? Írd ide:

💬 Beszélgetés

Légy az első — tegyél fel kérdést vagy oszd meg egy tippet.
Jelentkezz be hogy csatlakozz a beszélgetéshez. Az olvasás ingyenes.
Beszélgetés betöltése…