Python 3.14+Асинхронное программированиепонятие
asyncio.FrameCallGraphEntry
граф вызовов
Элемент стека в графе вызовов asyncio: обёртка над одним кадром (поле frame). Из таких элементов состоит FutureCallGraph.call_stack. Python 3.14+.
Синтаксис
for entry in graph.call_stack: entry.frame.f_code.co_name
У него одно поле frame — настоящий объект кадра, так что имя функции берут через entry.frame.f_code.co_name, а строку — entry.frame.f_lineno. Первый элемент call_stack — самый глубокий кадр, где корутина стоит сейчас. Хранить кадры дольше отладки не стоит: кадр держит все локальные переменные функции и мешает их освобождению.
Примеры
import asyncio
async def inner():
await asyncio.sleep(0.01)
graph = asyncio.capture_call_graph()
return [e.frame.f_code.co_name for e in graph.call_stack]
async def outer():
return await inner()
async def main():
names = await asyncio.create_task(outer())
print(names) # → ['inner', 'outer']
asyncio.run(main())
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности