Python Glossary English

Python 3.6+sysфункция

sys.set_asyncgen_hooks()

асинхронность

Устанавливает хуки асинхронных генераторов: firstiter — при первой итерации, finalizer — когда генератор собирается сборщиком мусора.

Синтаксис

sys.set_asyncgen_hooks(firstiter=..., finalizer=...)

Это интерфейс для авторов циклов событий: asyncio, trio и uvloop ставят хуки сами, а подмена из прикладного кода ломает им закрытие генераторов. Хуки действуют на текущий поток; аргумент можно опустить — тогда тот хук не меняется. Сохраняйте старые хуки и возвращайте их.

Примеры

import sys
seen = []
old = sys.get_asyncgen_hooks()
sys.set_asyncgen_hooks(firstiter=lambda agen: seen.append(agen.__name__))
async def ticks():
    yield 1
g = ticks()
step = g.asend(None)
step.close()
sys.set_asyncgen_hooks(*old)
print(seen)  # → ['ticks']

См. также

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