Python 3.6+sysфункция
sys.get_asyncgen_hooks()
асинхронность
Возвращает хуки асинхронных генераторов (firstiter, finalizer), которые ставит цикл событий, — чтобы закрывать брошенные async-генераторы.
Синтаксис
sys.get_asyncgen_hooks()
Вне цикла событий оба поля — None; внутри asyncio.run() их ставит сам asyncio. Именно поэтому async-генератор, брошенный посреди async for, не теряет свой finally: хук finalizer ставит его aclose() в цикл событий, а дожившие до конца закрывает loop.shutdown_asyncgens(). Пишущим прикладной код эти хуки не нужны — они для авторов своих циклов событий.
Примеры
import asyncio, sys
print(sys.get_asyncgen_hooks().firstiter) # → None
async def main():
hooks = sys.get_asyncgen_hooks()
print(hooks.firstiter is not None, hooks.finalizer is not None)
asyncio.run(main()) # → True True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности