Python 3.3+inspectфункция
inspect.getgeneratorlocals()
корутины и генераторы
Словарь текущих локальных переменных приостановленного генератора — подсмотреть его состояние в тесте или отладчике.
Синтаксис
inspect.getgeneratorlocals(generator)
Видны только переменные, уже получившие значение к текущему yield: до первого next() там лишь аргументы, после завершения или close() — тоже пуст, кадра больше нет. Это снимок: правка словаря на генератор не влияет. Не для генератора (например, для списка) — TypeError.
Примеры
import inspect
def counter():
total = 0
for i in range(3):
total += i
yield total
gen = counter()
print(inspect.getgeneratorlocals(gen)) # → {}
next(gen); next(gen)
print(inspect.getgeneratorlocals(gen)) # → {'total': 1, 'i': 1}
gen.close()
print(inspect.getgeneratorlocals(gen)) # → {}
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности