Перейти до основного вмісту
🔒 Режим прев'ю. Перші 15 уроків Foundations — безкоштовні; цей — Pro. Запусти 7-денний trial щоб відкрити редактор, AI-підказки і решту курсу. Потрібна картка, скасування в Dashboard у будь-який момент.Почати 7-денний trial →
← КурсиSenior Deep-DivesModule 6 · FAANG-2026 deep divesasyncio reentrance — you can't nest `asyncio.run()`predict110 / 161
+150 XP
Завдання
📝 **Завдання:** Передбачте точний результат. Усередині \`outer\` (працює в циклі подій) відбуваються три речі: (1) ми перевіряємо, чи запущено цикл, (2) ми намагаємося вкласти \`asyncio.run(inner())\` і перехопити RuntimeError, (3) ми правильно викликаємо той самий \`inner()\` через \`await\`. Обведіть кожен відбиток. 📋 Реалізуйте наведену вище функцію. Тести запускаються автоматично. 💡 **Підказка:** Перечитайте теорію, якщо ви застрягли.
Передбач вивід

Прочитай код уважно

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

Що виведе програма? Напиши тут:

💬 Обговорення

Будьте першим — поставте запитання або поділіться порадою.
Увійдіть щоб приєднатися до обговорення. Читання безкоштовне.
Завантаження обговорення…