&>&> name = "Fred"&>&>..." />
標籤:

Python 3.6 有什麼新特性?


語法層面上,新增了 Formatted string literals,在通過字元串的前綴 "f",類似於 Scala/Swift 等語言的字元串插值,示例代碼如下:

&>&>&> name = "Fred"
&>&>&> f"He said his name is {name}."
"He said his name is Fred."

事實上原理為:

&>&>&> name = "Fred"
&>&>&> "He said his name is {name}.".format(name=name)
"He said his name is Fred."

------------------


Python3.6在2016.12.23正式發布,你可以點擊官方文章這裡查看整個的變化日誌;Python3.6中主要的變化如下(翻譯自官方文檔)

新的語法特性

  • PEP 498, 格式化字元串變數.
  • PEP 515, 數字變數使用下劃線.
  • PEP 526, 給變數添加註釋的語法.
  • PEP 525, 非同步生成器.
  • PEP 530: 非同步推導.

新的庫模板

  • secrets: PEP 506 – Adding A Secrets Module To The Standard Library.

CPython的一些改進

  • 重新實現了字典dict,使其更加緊湊,像是PyPy中的實現。此次重新實現的dict比Python3.5中的字典內存使用減少了20%-25%
  • 定製類的創建使用 new protocol 進行了簡化
  • 類中各個屬性定義的順序現在是被保存的 now preserved.
  • 雙星號變數**kwargs中的元素的順序是你傳入函數中的元素的順序
  • 添加了DTrace和SystemTap探測支持。
  • 新的PYTHONMALLOC環境變數現在可用於調試解釋器內存分配和訪問錯誤。

標準庫的重大改進

  • asyncio模板添加了很多新的功能、重要的可用性、性能改進以及大量的bug,從Python3.6開始 asyncio模板不再是臨時的並且API變得更加穩定
  • 一個新的文件系統路徑協議file system path protocol已經產生來支持 path-like objects,標準庫中所有的文件路徑操作已經被更新到使用新的協議
  • datetime模板現在已經支持 Local Time Disambiguation
  • typing模板進行了很多的改進
  • tracemalloc模板進行了大幅度的改進,現在用來為ResourceWarning提供更好的輸出、以及為內存分配錯誤提供更好的診斷。

安全性的提高

  • 添加了新的模板secrets以簡化使用於管理密碼,比如賬號認證,令牌等的密碼的隨機數的生成
  • 在Linux OS中,os.urandom()現在阻塞,直到系統urandom熵池被初始化以增加安全
  • hashlib和ssl 模板現在已經支持OpenSSL 1.1.0.
  • ssl 模板中的默認設置和功能現在已經被改進了
  • 模板現在新增了對BLAKE2, SHA-3 and SHAKE的哈希演算法以及scrypt()密鑰導出函數的支持


在項目中已經開始使用type hints了。

另外現在在用.format(**locals())的語法來兼容 Formatted string literals。


1. 在linux下, 可以使用 python3.6 命令進入 python shell 環境.

2. 可以使用 pip3.6 來進行 python3.6 第三方模塊的升級安裝

3. 敲入 python3.6 --version, 將顯示 Python 3.6.x

以上純屬玩笑

https://www.python.org/dev/peps/(點我點我)

題主可以慢慢翻, 其中有一段 Accepted PEPs, 表示已經接受的草案, 比如其中的PEP484就已經在python3.5中實現了.


Python3.6b1發布了,終於可以談一談有什麼可以一說的新特性了。

首先3.6實現了16個新PEP標準,其中幾個值得特別說一下:

PEP-0498 Formatted string literals,這個已經有人提過了。

PEP-0530和PEP-0525為async/await擴展了新的應用場景,不過我覺得前面應該比後面更常用一點。

PEP-0526 Syntax for variable annotations,是專門為Type Hint添加的,這會為Python的大型工程化表現有所幫助,建議大家一起來把類型聲明一下吧。我們已經在內部項目中使用了TypeHint,還是比較有用的。

PEP-0529和PEP-0528都是為Windows用戶準備的,全部切換成了UTF8,不過我不是Windows用戶...

一個非PEP標準:

DTrace and SystemTap probing support,這是為Python添加了本地調試器支持,這個會對Python的開發尤其是伺服器之類的場景非常有幫助。今年pycon china shanghai來自餓了么的工程師也分享了相關的黑魔法(clouddn.com 的頁面),之前是需要特定版本Python支持的功能現在在Linux和macOS上都可以支持了。

更新:2016-09-14

----------

Release date: TBA

  • Summary – Release highlights

None yet.

  • Other Language Changes

None yet.

  • New Modules

None yet.

What』s New In Python 3.6


增加了數學常量

math.tau = 2 * math.pi


推薦閱讀:

Python2轉Python3有沒有必要重新學習?
VPS 如何搭建 Python 環境?
為什麼 Python 不用 C++ 實現?
Python為什麼直接運行和在命令行運行同樣語句但結果卻不同,他們的緩存機制不同嗎?
在Mac系統下python如何安裝第三方函數庫?

TAG:Python | Python3x |