Prejsť na hlavný obsah
🔒 Režim náhľadu. Prvých pätnásť lekcií Foundations je zadarmo; táto je Pro. Spustite 7-dňový trial pre odomknutie editora, AI nápovied a zvyšku kurzu. Karta vyžadovaná, zrušte kedykoľvek v Dashboard.Spustiť 7-dňový trial →
← KurzySenior Deep-DivesModule 6 · FAANG-2026 deep divesasyncio reentrance — you can't nest `asyncio.run()`predict110 / 161
+150 XP
Úloha
📝 **Úloha:** Predpovedajte presný výstup. Vo vnútri \`outer\` (beží v slučke udalostí) sa dejú tri veci: (1) skontrolujeme, či slučka beží, (2) pokúsime sa vnoriť \`asyncio.run(inner())\` a zachytiť RuntimeError, (3) tú istú \`inner()\` správne zavoláme cez \`wait\`. Sledujte každý výtlačok. 📋 Implementujte funkciu vyššie. Testy prebiehajú automaticky. 💡 **Tip:** Znova si prečítajte teóriu, ak sa zaseknete.
Predpovedz výstup

Prečítaj kód pozorne

import asyncio
import warnings

# Silence the "coroutine never awaited" warning that fires when
# the inner asyncio.run() raises before scheduling its coroutine.
warnings.simplefilter("ignore", RuntimeWarning)


async def inner():
    return "inner-result"


async def outer():
    loop = asyncio.get_running_loop()
    print(f"loop_running:{loop.is_running()}")
    try:
        asyncio.run(inner())
        print("nested:ok")
    except RuntimeError as e:
        print(f"nested:{e}")
    result = await inner()
    print(f"awaited:{result}")


asyncio.run(outer())

Čo program vypíše? Napíš sem:

💬 Diskusia

Buď prvý — polož otázku alebo sa podeľ o tip.
Prihlás sa aby si sa zapojil do diskusie. Čítanie je zadarmo.
Načítava sa diskusia…