Python 3.5+inspectфункция
inspect.getcoroutinelocals()
корутины и генераторы
Словарь текущих локальных переменных приостановленной корутины — аналог getgeneratorlocals для async def.
Синтаксис
inspect.getcoroutinelocals(coroutine)
Пока корутину ни разу не продвинули, в словаре только её аргументы — переменные тела появляются по мере выполнения; после завершения он пуст. Полезна в тестах, где корутину двигают вручную через send(None), без цикла событий. Передать нужно объект корутины, а не саму async-функцию.
Примеры
import inspect
class Pause:
def __await__(self):
yield
async def job(n):
step = n * 2
await Pause()
c = job(5)
print(inspect.getcoroutinelocals(c)) # → {'n': 5} — пока только аргументы
c.send(None)
print(inspect.getcoroutinelocals(c)) # → {'n': 5, 'step': 10}
c.close()
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности