Напишите класс Loop, являющийся параметрическим декоратором для корутин.

Гарантируется, что в образующий цикл добавлены все задекорированные корутины ровно по одному разу.

   1 @Loop()
   2 async def getqA(queue):
   3     print("A Get", res := await queue.get())
   4     return res
   5 
   6 @Loop()
   7 async def getqB(queue):
   8     print("B Get", res := await queue.get())
   9     return res
  10 
  11 async def Run(*coros):
  12     queue = asyncio.Queue()
  13     for i in list(range(1, 6)) + [None]:
  14         await queue.put(i)
  15     async with asyncio.TaskGroup() as tg:
  16         for coro in coros:
  17             tg.create_task(coro(queue))
  18 
  19 asyncio.run(Run(getqA, getqB))

A Get 1
B Get 2
A Get 3
B Get 4
A Get 5
B Get None


CategoryHomework

LecturesCMC/PythonIntro2025/Homework_GroupWork (последним исправлял пользователь FrBrGeorge 2025-12-05 17:31:57)