Будущее Asyncio, запуск объектов FuturePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Будущее Asyncio, запуск объектов Future

Сообщение Anonymous »

У меня есть код:

Код: Выделить всё

import asyncio as aio

async def coro(future: aio.Future):
print('Coro start')
await aio.sleep(3)
print('Coro finish')
future.set_result('coro result')

async def main():
future = aio.Future()
aio.create_task(coro(future))
await future
coro_result = future.result()
print(coro_result)

aio.run(main())
В main() я создаю пустой объект aio.Future, затем создаю задачу с помощью aio.create_task(coro(future)), используя сопрограмму, которая принимает объект aio.Future. Затем я «запускаю» пустое будущее с помощью await Future. Каким-то образом эта строка запускает задачу вместо запуска пустой сопрограммы! Я не понимаю, как это работает и почему так происходит, потому что я ожидаю, что строка await Future будет запускать пустое будущее, а не задачу!
Если я реорганизую свой main() вот так:

Код: Выделить всё

import asyncio as aio

async def coro(future: aio.Future):
print('Coro start')
await aio.sleep(3)
print('Coro finish')
future.set_result('coro result')

async def main():
future = aio.Future()
await aio.create_task(coro(future))
# await future
coro_result = future.result()
print(coro_result)

aio.run(main())
Я получаю тот же результат, но поведение кода становится для меня гораздо более явным.

Подробнее здесь: https://stackoverflow.com/questions/793 ... re-objects
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Будущее Asyncio, запуск объектов Future
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Будущее Asyncio, запуск объектов Future
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Будущее Asyncio, запуск объектов Future
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Будущее Asyncio, запуск объектов Future
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Будущее Asyncio, запуск объектов Future
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»