Я пытаюсь использовать Python 3.6's async comprehensions в MacOS Sierra (10.12.2), но я получаю SyntaxError
.Как использовать асинхронные методы?
Вот код, который я пробовал:
print([ i async for i in range(10) ])
print([ i async for i in range(10) if i < 4 ])
[i async for i in range(10) if i % 2]
Я получаю ошибку синтаксиса для async loops:
result = []
async for i in aiter():
if i % 2:
result.append(i)
Весь код копирования/вставки из PEP.
Terminal Выход:
>>> print([i for i in range(10)])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print([i async for i in range(10)])
File "<stdin>", line 1
print([i async for i in range(10)])
^
SyntaxError: invalid syntax
>>> print([i async for i in range(10) if i < 4])
File "<stdin>", line 1
print([i async for i in range(10) if i < 4])
^
SyntaxError: invalid syntax
>>>
Есть ли быстрый способ вызвать функцию «async def» из REPL и дождаться ее завершения? – tbodt
@tbodt Я понимаю, что вы спросили ровно 6 месяцев назад, но для кого-то еще интересно, вы можете использовать 'asyncio.get_event_loop(). Run_until_complete (some_async_function())' в REPL для синхронного запуска этой функции. –