Python 3.5正式發布,支持async/await異步編程

pphe 9年前發布 | 6K 次閱讀 Python

2015 年 9 月 13 日,Python 3.5 正式發布。該版本引入了很多新特性,比如支持 async/await 異步編程,改進了對 Python Zip 應用的支持,引入了一個加載擴展模塊的改進機制等。

語法方面的變化主要有三點:

  • PEP 492:支持 async/await 語法的協程
  • </ul>

    PEP 492 極大改進了 Python 中對異步編程的支持,增加了 awaitable 對象(可以是協程或者帶有__await__() 方法的對象)、協程函數異步迭代異步上下文管理器等內容。

    協程函數用新的 async def 語法聲明:

    >>>async def coro (): 
    
       ... return 'spam'
    • PEP 465:新的矩陣相乘運算符:a @ b
    • PEP 448:解包操作泛化(Unpacking Generalizations)

    CPython 實現的改進:

    • 不再使用 .pyo 文件,而是引入了一種更靈活的替代機制,.pyc 文件可以表示優化和未優化的字節碼。優化級別信息可以包含在 .pyc 文件的名字中,具體可參見 PEP 488
    • 重新設計了內置和擴展模塊的加載機制,具體可參見 PEP 489

    標準庫也有重要改進:

    安全方面的改進:

    • 標準庫中默認關閉了 SSLv3,不過仍然支持手動開啟。
    • HTTP cookie 解析更為嚴格,以防止可能出現的注入攻擊。

    更多新特性,可以參考相關文檔

    另外,在 10 月 15~17 日的 QCon 上海 2015上,國內著名的 Python 專家賴勇浩將分享《探索 Python 3.5 中 async/await 特性的實現》。async/await 特性使得 Python 具備語法級別的協程支持,也讓它有了更容易理解和交流的異步編程模型。那么,這個特性在虛擬機里是如何實現的呢?是否用了什么很特別的機制?跟之前的 yield/yield from 有何異同?敬請期待。

    來自: InfoQ
     本文由用戶 pphe 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!