У меня довольно распространенная схема выбора страницы содержимого и разбивки на страницы. Возможно, для этого есть более подходящие библиотеки, но я новичок в Python и пытаюсь узнать, как использовать генераторы для этой цели.
В приведенном ниже коде я хотел бы перебрать асинхронный код Генератор c, который выдает коллекцию предметов, используя один для l oop.
import asyncio
async def rest_api_list(after):
after = 0 if after is None else after
return iter(range(after, after + 3, 1)), (after + 3 if after <= 24 else None)
async def page_items():
after = None
while True:
items, after = await rest_api_list(after)
yield items
if after == None:
break
async def main():
async for items in page_items():
# ---> !!!!!!!!!!!!!!!!!!!!!!! not elegant to loop twice here
for item in items:
print(item)
asyncio.run(main())
Кажется, одно простое исправление можно изменить с:
yield items
на
for item in items:
yield item
но он не чувствует самый python -i sh способ сделать это. Есть ли лучшие подходы к этому?