Python Glossary English

Python 3.13+Асинхронное программированиепонятие

asyncio.EventLoop

event loop

Псевдоним самого подходящего цикла событий для текущей ОС: SelectorEventLoop на Unix и ProactorEventLoop на Windows. Появился в Python 3.13.

Синтаксис

asyncio.run(main(), loop_factory=asyncio.EventLoop)

Это не новый цикл, а имя для того, что asyncio.run() и так создаёт по умолчанию; проверка asyncio.EventLoop is asyncio.SelectorEventLoop на Linux даёт True. Нужен он там, где цикл передают явно — asyncio.run(main(), loop_factory=asyncio.EventLoop) или asyncio.Runner(loop_factory=...), — и он заменяет устаревшую с 3.14 возню с политиками циклов. В Python 3.11 и 3.12 имени нет — будет AttributeError.

Примеры

import asyncio
async def main():
    await asyncio.sleep(0.01)
    return type(asyncio.get_running_loop()).__name__
name = asyncio.run(main(), loop_factory=asyncio.EventLoop)
print(name)  # → ? SelectorEventLoop на Linux и macOS, ProactorEventLoop на Windows
print(issubclass(asyncio.EventLoop, asyncio.AbstractEventLoop))  # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности