В настоящее время я использую asyncio для запуска некоторой программы в Python:
import asyncio
async def mycoro(number):
print("Starting %d" % number)
await asyncio.sleep(number)
print("Finishing %d" % number)
return str(number)
async def print_when_done(tasks):
for res in asyncio.as_completed(tasks):
print("Result %s" % await res)
# here is there a way to print the argument that I entered to the task (mycoro(ARGUMENT))
async def run_command():
print("This is the start of run command")
print("This is one more line")
coros = [mycoro(1), mycoro(2), mycoro(3)]
await print_when_done(coros)
loop = asyncio.get_event_loop()
loop.run_until_complete(run_command())
loop.close()
Кажется, он работает хорошо. Как видите, я запускаю mycoro три раза одновременно и затем печатаю, когда задачи завершены.
Однако я дал некоторые задачи функции print_when_done
. Эта функция печатает результаты функции (сопрограммы) mycoro
. Мой вопрос: есть ли способ распечатать оттуда (строка, в которой я помещаю комментарий) аргумент, который я передал? Я хотел бы, например, сравнить, что результат 1
(строка) - это строка 1
(число) et c.
Я не знаю, возможно ли это.