Přejít k hlavnímu obsahu
🔒 Režim náhledu. Prvních patnáct lekcí Foundations je zdarma; tato je Pro. Spusťte 7denní trial pro odemčení editoru, AI nápověd a zbytku kurzu. Karta vyžadována, zrušte kdykoli v Dashboard.Spustit 7denní trial →
← KurzySenior Deep-DivesModule 6 · FAANG-2026 deep divescontextvars in async — Task context isolationpredict108 / 161
+150 XP
Úkol
📝 **Úkol:** Předpovězte přesný výstup. \`req_id\` je nastaveno na \`"req-A"\` v \`main\`. Potom: (1) \`wait child()\` — vidí dítě "req-A" nebo výchozí? (2) \`asyncio.create_task(isolated())\` kde izolovaný znamená \`set("req-B")\` — neprosakuje jeho změna zpět do hlavního? (3) Co vidí hlavní po obou? 📋 Implementujte výše uvedenou funkci. Testy probíhají automaticky. 💡 **Tip:** Pokud se zaseknete, přečtěte si znovu teorii.
Předpověz výstup

Přečti kód pozorně

import asyncio
import contextvars

req_id = contextvars.ContextVar("req_id", default="none")


async def child():
    return f"child:{req_id.get()}"


async def isolated():
    req_id.set("req-B")
    return f"isolated:{req_id.get()}"


async def main():
    req_id.set("req-A")
    a = await child()
    t = asyncio.create_task(isolated())
    b = await t
    return [a, b, f"main:{req_id.get()}"]


print(asyncio.run(main()))

Co program vypíše? Napiš sem:

💬 Diskuze

Buď první — polož otázku nebo se podělej o tip.
Přihlas se abys se zapojil do diskuze. Čtení je zdarma.
Načítání diskuze…