Прескочи на главни садржај
🔒 Режим прегледа. Првих петнаест Foundations лекција је бесплатно; ова је Pro. Покрените 7-дневни trial да откључате едитор, AI савете и остатак курса. Картица је обавезна, можете отказати у било ком тренутку у Dashboard.Покрени 7-дневни trial →
← KurseviSenior Deep-DivesModule 7 · Memory, GC, modern typingcontextlib.ExitStack — dynamic context-manager compositionpredict120 / 161
+150 XP
Zadatak
📝 **Задатак:** Предвидите тачан резултат. Три угнежђена менаџера контекста се гурају у ЕкитСтацк, затим се тело покреће, а затим ЕкитСтацк излази у ЛИФО редоследу. Листа догађаја обухвата редослед __уласка__, рада тела и __изласка__. 📋 Имплементирајте горњу функцију. Тестови се покрећу аутоматски. 💡 **Савет:** Поново прочитајте теорију ако запнете.
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)

Šta će program ispisati? Napiši ovde:

💬 Diskusija

Budi prvi — postavi pitanje ili podeli savet.
Prijavi se da bi se pridružio diskusiji. Čitanje je besplatno.
Učitavanje diskusije…