В основном я написал следующий пример короткого кода.Я представляю, что могу "опробовать" простой цикл "async for
" Python ...
import sys
async def avalues(unsorted_list):
for value in unsorted_list:
yield value
await asyncio.sleep(0)
async def bogo_sort(unsorted_list):
async for value in avalues(unsorted_list):
await asyncio.sleep(ord(value[0])-ord("A"))
print(value)
sys.stdout.flush()
import asyncio
unsorted_list="Echo","Foxtrot","Golf","Hotel","Indigo","Alfa","Bravo","Charlie","Delta"
if __name__=="__main__":
print("BEGIN")
loop = asyncio.get_event_loop()
loop.run_until_complete(bogo_sort(unsorted_list))
print("END")
Я думаю, что, возможно, sys.stdio.flush
не может быть запущен асинхронно.(Или функция avalues
не оказалась асинхронной?) Подсказки приветствуются ...
Фактический вывод, который я получаю:
BEGIN Echo Foxtrot Golf Hotel Indigo Alfa Bravo Charlie Delta END
Я ожидал:
BEGIN Alfa Bravo Charlie Delta Echo Foxtrot Golf Hotel Indigo END