怎麼看:Python 3.5 支持 async/await ?

PEP 0492 -- Coroutines with async and await syntax

趕超Javascript ES7?


不太喜歡為了一個功能專門造關鍵字,不過 async / await 確實有 yield 做不到的地方,比如 async with,async for。可以看看這個演講: https://www.youtube.com/watch?v=aintdHnqaio

Steve Dower: What"s coming in Python 3.5 and why you should be excited

至於抄的事情,天下語言,莫不如是。

至於兼容性,Python 小版本升級本來就不是特別在意這個。async / await 也基本向後兼容的(只有把 async / await 當變數名用了的程序會有問題)。

有人提到 asyncio 了。但我覺得這完全是兩個問題。Flask 的作者 Armin Ronacher 說了,I don"t understand Python"s Asyncio——他說他完全搞不懂 asyncio。

注意:知乎鏈接很奇怪,請點中間英文部分來訪問文章。

我也搞不懂,所以還是用 Tornado 好了。

PS: 知乎編輯器太難用了啊啊,多向 VisualEditor 學學不好么。一不支持放棄修改只能保存著;二是鏈接的行為很奇怪,經常逃不出來,也不知道鏈接錯了要怎麼取消鏈接(別告訴我把字重新打一遍,或者複製到記事本里再複製回來)。


換湯不換藥,但專有關鍵字也許會比借用 yield from 的語義更明確。

個人不看好 asyncio 系的一點是官方似乎完全沒有考慮(或沒有引導)大量現有民間庫該如何兼容(或遷移),甚至連 3.5 標準庫的 smtpd 等都還是 2.x 遺留的實現。asyncio 還只是個裸殼子。(不過這個似乎也是官方推廣 Python 3 過程中一貫不負責任的作風,現有的利用 six 庫兼容 2.7+ / 3.2+ 的攻略也是民間總結出來的,官方此前推薦是那個完全沒有可用性的 lib2to3)


古老的回調寫法是一種很反人類的寫法,而包裝成async await一下子就以人為本了,C#里我都用了好多年了,比回調好用太多了,這才是科技的進步,不是說一定要底層啊原理啊有什麼革新,更人性化同樣是科技進步而且更重要。


Microsoft 有個 C#, 比你們不知道高到哪裡去了。


1. 編程語言(及其社區)在互相借鑒發展

比如JS的generator最初主要借鑒了Python

2. 但現在已反過來python開始借鑒JS,可佐證JS在發展態勢上已是世界第一語言


3.6還支持fstring,期待啊


威武支持有希望了


讀書人的事,能算抄嗎?


推薦閱讀:

TAG:Python | 非同步 | asyncio |