This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2017年08月13日 04:58 by merrellb, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Messages (2) | |||
|---|---|---|---|
| msg300209 - (view) | Author: Brian (merrellb) | Date: 2017年08月13日 04:58 | |
PEP 492 lists the following under "valid syntax" and yet 3.5.2 raises a SyntaxError: def foo(): return await coro() but this works: def bar(): return await (coro()) |
|||
| msg300212 - (view) | Author: Martin Panter (martin.panter) * (Python committer) | Date: 2017年08月13日 05:49 | |
In 3.5, "await" is an ordinary identifier outside of "async def" functions. You have to use the "async def" syntax to enable it as a special keyword.
>>> async def foo(): # "Async def" enables "await" as a keyword
... return await coro() # Valid syntax
...
>>> async def coro(): pass
...
>>> def await(c):
... c.close() # Avoid RuntimeWarning
... return "Called await({!r})".format(c)
...
>>> def bar(): # Ordinary non-PEP-492 function
... return await (coro())
...
>>> bar()
'Called await(<coroutine object coro at 0x7fb82c50d410>)'
|
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:50 | admin | set | github: 75375 |
| 2017年08月13日 05:49:02 | martin.panter | set | status: open -> closed nosy: + martin.panter messages: + msg300212 resolution: not a bug stage: resolved |
| 2017年08月13日 04:58:12 | merrellb | create | |