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-DivesModule 7 · Memory, GC, modern typingcontextlib.ExitStack — dynamic context-manager compositionpredict120 / 161
+150 XP
Zadatak
📝 **Zadatak:** Predvidite točan rezultat. Tri ugniježđena upravitelja konteksta guraju se na ExitStack, zatim se pokreće tijelo, a zatim ExitStack izlazi LIFO redoslijedom. Popis događaja bilježi redoslijed __ulaska__, rada na tijelu i __izlaska__. 📋 Implementirajte gornju funkciju. Testovi se pokreću automatski. 💡 **Savjet:** Ponovno pročitajte teoriju ako zapnete.
Predvidi izlaz

Pažljivo pročitaj kod

from contextlib import ExitStack


events: list[str] = []


class Tracked:
    def __init__(self, name: str) -> None:
        self.name = name

    def __enter__(self) -> "Tracked":
        events.append(f"enter {self.name}")
        return self

    def __exit__(self, *exc: object) -> bool:
        events.append(f"exit {self.name}")
        return False


with ExitStack() as stack:
    a = stack.enter_context(Tracked("A"))
    b = stack.enter_context(Tracked("B"))
    c = stack.enter_context(Tracked("C"))
    events.append("body")

for e in events:
    print(e)

Š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…