[Python-Dev] async/await in Python; v2 (original) (raw)
Paul Sokolovsky pmiscml at gmail.com
Thu Apr 23 00:21:54 CEST 2015
- Previous message (by thread): [Python-Dev] async/await in Python; v2
- Next message (by thread): [Python-Dev] async/await in Python; v2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello,
On Wed, 22 Apr 2015 13:31:18 -0700 Guido van Rossum <guido at python.org> wrote:
On Wed, Apr 22, 2015 at 1:10 PM, Andrew Svetlov <andrew.svetlov at gmail.com> wrote:
> On Wed, Apr 22, 2015 at 10:44 PM, PJ Eby <pje at telecommunity.com> > wrote: > > On Tue, Apr 21, 2015 at 1:26 PM, Yury Selivanov > > <yselivanov.ml at gmail.com> > wrote: > >> It is an error to pass a regular context manager without > >>
_aenter_
and_aexit_
methods toasync with
. It > >> is aSyntaxError
to useasync with
outside of a > >> coroutine. > > > > I find this a little weird. Why not just havewith
andfor
> > inside a coroutine dynamically check the iterator or context > > manager, and either behave sync or async accordingly? Why must > > there be a syntactic difference? > > IIRC Guido always like to have different syntax for calling regular > functions and coroutines. > That's why we need explicit syntax for asynchronous context managers > and iterators. > To clarify: the philosophy behind asyncio coroutines is that you should be able to tell statically where a task may be suspended simply by looking foryield from
. This means that no implicit suspend points may exist, and it rules out gevent, stackless and similar microthreading frameworks.
I always wanted to ask - does that mean that Python could have symmetric coroutines (in a sense that it would be Pythonic feature), as long as the call syntax is different from a function call?
E.g.:
sym def coro1(val): while True: val = coro2.corocall(val)
sym def coro2(val): while True: val = coro1.corocall(val)
coro1.call(1)
-- Best regards, Paul mailto:pmiscml at gmail.com
- Previous message (by thread): [Python-Dev] async/await in Python; v2
- Next message (by thread): [Python-Dev] async/await in Python; v2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]