[Python-Dev] PEP 3152 and yield from Future()

Greg Ewing greg.ewing at canterbury.ac.nz
Fri Apr 24 03:05:45 CEST 2015


Yury Selivanov wrote:
> Another problem is functions that return future:
> 
> def do_something():
>     ...
>     return fut
> 
> With Greg's idea to call it you would do:
> 
>    cocall (do_something())()
> 
> That means that you can't refactor your "do_something"
> function and make it a coroutine.

There's no fundamental problem with a cofunction
returning another cofunction:

codef do_something():
    return fut

f = cocall do_something()
result = cocall f()

Combining those last two lines into one would
require some extra parenthesisation, but I don't
think that's something you're going to be doing
much in practice. If you're just going to
immediately call the result, there's no point
in returning a future -- just do it all in
do_something().

-- 
Greg


More information about the Python-Dev mailing list