Я отправился на встречу SF Python, когда Guido говорил о Tulip, будущей библиотеке asyncIO для асинхронных операций в Python.
Отказ в том, что если вы хотите, чтобы что-то выполнялось асинхронно, вы можете использовать "yield from" + expression
и пару декораторов, чтобы указать, что вызов того, что происходит после yield from
, должен выполняться асинхронно. Самое приятное в том, что вы можете нормально читать инструкции в этой функции (как если бы она была синхронной), и она будет вести себя так, как если бы она была синхронной в отношении выполнения этой функции (возвращаемые значения и распространение ошибок и исключений).
Мой вопрос: почему бы не иметь противоположное поведение, а именно, чтобы все вызовы функций были по умолчанию async (и без yield from
) и имели различный явный синтаксис, когда вы хотите что-то выполнить синхронно?
(кроме необходимости в другом ключевом слове/синтаксисе)