В Python с использованием библиотеки `asyncio` можно получить доступ к текущим задачам (корутинам), выполняющимся в цикле событий, с помощью функции `asyncio.all_tasks()`. Эта функция возвращает множество текущих задач, которые управляются циклом событий.
Вот пример, как можно получить список всех текущих задач:
```python
import asyncio
async def task1():
await asyncio.sleep(2)
print("Task 1 completed")
async def task2():
await asyncio.sleep(1)
print("Task 2 completed")
async def main():
# Создаем задачи
task1_instance = asyncio.create_task(task1())
task2_instance = asyncio.create_task(task2())
# Получаем список текущих задач
current_tasks = asyncio.all_tasks()
print(f"Current tasks: {[task.get_name() for task in current_tasks]}")
await asyncio.gather(task1_instance, task2_instance)
# Запускаем основной цикл событий
asyncio.run(main())
```
В этом коде:
1. Мы создали две корутины (`task1` и `task2`), которые просто ждут некоторое время.
2. Внутри функции `main()` мы создаем две задачи.
3. Мы вызываем `asyncio.all_tasks()`, чтобы получить все текущие задачи и вывести их имена. Обратите внимание, что мы используем `task.get_name()`, чтобы получить их имена, но если вы не установили имена задач вручную, они будут иметь автоматические имена вида "Task-X".
4. Затем мы дожидаемся завершения всех задач с помощью `asyncio.gather`.
Это поможет вам увидеть, какие корутины/задачи в данный момент выполняются в вашем цикле событий.