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 6 · FAANG-2026 deep divesasyncio reentrance — you can't nest `asyncio.run()`predict110 / 161
+150 XP
Zadatak
📝 **Zadatak:** Predvidite točan rezultat. Unutar \`outer\` (izvršavanje u petlji događaja), događaju se tri stvari: (1) provjeravamo radi li petlja, (2) pokušavamo ugnijezditi \`asyncio.run(inner())\` i uhvatiti RuntimeError, (3) pozivamo isti \`inner()\` ispravno putem \`await\`. Pratite svaki otisak. 📋 Implementirajte gornju funkciju. Testovi se pokreću automatski. 💡 **Savjet:** Ponovno pročitajte teoriju ako zapnete.
Predvidi izlaz

Pažljivo pročitaj kod

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

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