似乎C#启发了异步编程的异步等待方法正在吞噬世界。Python 3.5是采用它的最新语言。
最新接受的Python增强建议(PEP)是:
PEP 0492-具有异步和等待语法的协程
由CPython核心开发人员Yury Selivanov创作,他是Sprymix.com的创始人,它为下一版本的Python添加了异步和等待方式来编写异步代码。注意,这不会被反向移植到Python 2的任何分支,因为它的开发已经结束。这可能是升级到Python 3的一个很好的理由,尽管这表示Python 3已经计划了许多新事物,因此值得忘记Python 2。
对于使用单线程用户界面(如C#和JavaScript)的语言而言,异步操作已成为现实,但是Python与UI编程并没有特别的联系。异步编程的问题在于,它破坏了同步程序中的简单控制流。例如,如果您想通过互联网加载一些数据然后进行处理,您可以编写:
加载数据处理数据
但是,如果加载速度很慢并且正在UI线程上完成,则等待将使整个应用程序冻结。直接的解决方案是将处理器数据步骤转换为函数,并将其作为回调传递给负载数据。这是可行的,但很快就会变得非常复杂,从而导致所谓的回调地狱。
asyncand await解决方案解决了该问题,而无需更改控制的自然流程。您可以等待任何已声明为异步的函数调用。因此,如果将加载数据声明为“异步加载数据”&#x