Python Glossary English

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Сообщить о неточности