Python官網(wǎng)靜悄悄地發(fā)布了一條大消息:正式發(fā)布 Python 3.7.0!同時發(fā)布的還有Python 3.6.6穩(wěn)定版。官網(wǎng)剛剛更新了可下載文檔,還在用Python 2.7和Python3.5的你,趕緊用起來!
Python官網(wǎng)宣布,正式發(fā)布Python 3.7.0!
2018年6月27日星期三
Python 3.7.0現(xiàn)已推出(同時還有3.6.6版本)!
代表Python開發(fā)社區(qū)和Python 3.7發(fā)布團(tuán)隊,我們很高興地宣布Python 3.7.0現(xiàn)在可以使用了。Python 3.7.0是Python語言的最新功能版本,包含許多新的功能和優(yōu)化。你可以在這里下載Python 3.7.0:
https://www.python.org/downloads/release/python-370/
Python的大多數(shù)第三方庫也應(yīng)該盡快支持3.7.0軟件包。
有關(guān)3.7系列功能的更多信息,請參閱Python 3.7中的新功能文檔。有關(guān)3.7.0中所做更改的詳細(xì)信息,請參見其更改日志。3.7系列的維護(hù)版本將從2018年7月開始定期進(jìn)行。
我們希望您喜歡Python 3.7!
另附:我們也很高興地宣布,Python 3.6.6的下一個維護(hù)版本Python 3.6可以使用了:https://www.python.org/downloads/release/python-366/
感謝所有幫助Python開發(fā)和這些發(fā)布的志愿者!歡迎通過志愿或組織捐贈支持Python軟件基金會的工作。
Python 3.7.0 重大功能改進(jìn)
那么,這次新發(fā)布的Python 3.7.0 有哪些重要的改進(jìn)呢?總的來說,
新的syntax功能:
PEP 563,推遲了類型注釋(type annotations)的評估
向后不兼容的syntax更改:
async 和 await 現(xiàn)在是保留關(guān)鍵詞
新的庫模塊:
contextvars:PEP 567 - 上下文變量
dataclasse:PEP 557 - 數(shù)據(jù)類
importlib.resources
新的內(nèi)置功能:
PEP 553,新的 breakpoint() 函數(shù)
Python 數(shù)據(jù)模型改進(jìn):
PEP 562,定制訪問模塊屬性
PEP 560,核心支持 typing module 和 generic types
dict 對象的插入順序保存性質(zhì)被納入Python官方語言規(guī)范
標(biāo)準(zhǔn)庫的重大改進(jìn):
asyncio 模塊增加了新功能,提高了可用性和性能
time 模塊新增納秒級函數(shù)支持,新函數(shù)將納秒數(shù)作為整數(shù)值返回
CPython 部署改進(jìn):
避免使用 ASCII 作為默認(rèn)文本編碼
PEP 552,deterministic .pycs
新的 runtime 模式
PEP 565,改進(jìn)了 DeprecationWarning 處理
C API 改進(jìn):
PEP 539,用于線程本地存儲的新C API
文檔改進(jìn):
PEP 545,Python文檔翻譯
新增日語、法語和韓語文檔
Python 3.7.0 新增特性
那么,接下來詳細(xì)看看這些功能。
PEP 563:推遲對注釋語句的評估
Python的類型提示有兩個明顯的可用性問題:
注釋只能使用當(dāng)前范圍內(nèi)已有的名稱,換句話說,它們不支持任何類型的前向引用;注釋源代碼對Python程序的啟動時間有不利影響。
通過推遲注釋評估可以解決這兩個問題。編譯器不是編譯在定義時在注釋中執(zhí)行表達(dá)式的代碼,而是將注釋以字符串形式存儲。如果需要,可以使用typing.get_type_hints()在運行時解析注釋。在不需要解析的常見情況下,注釋的存儲成本更低,并且啟動時間更快。
PEP 538:C語言環(huán)境強制
Python 3系列中的一個持續(xù)的挑戰(zhàn)是確定一種合理的默認(rèn)策略,用于處理目前在非Windows平臺上使用默認(rèn)C或POSIX語言環(huán)境的“7-bit ASCII”文本編碼假設(shè)。
PEP 538更新默認(rèn)解釋器命令行界面,自動將該語言環(huán)境強制轉(zhuǎn)換為可用的基于UTF-8的語言環(huán)境。自動設(shè)置LC_CTYPE意味著核心解釋器和C擴(kuò)展(例如readline)將假設(shè)使用UTF-8作為默認(rèn)文本編碼,而不是ASCII。
PEP 540:強制UTF-8 Runtime模式
新的-X utf8命令行選項和PYTHONUTF8環(huán)境變量可用于啟用CPython UTF-8模式。
PEP 553:內(nèi)置breakpoint()
Python 3.7新增了內(nèi)置函數(shù)breakpoint(),作為進(jìn)入Python調(diào)試器的簡單而一致的方式。
PEP 539:新增用于線程本地存儲的C API
雖然Python為線程本地存儲支持提供了一個C API;但現(xiàn)有的線程本地存儲(TLS)API使用int來表示所有平臺上的TLS密鑰,但這既不符合POSIX標(biāo)準(zhǔn),也不具備任何實際意義上的便攜性。
PEP 539通過向CPython提供新的線程本地存儲(TSS)API來改變這一點,該API取代了在CPython解釋器中使用現(xiàn)有TLS API,同時棄用現(xiàn)有API。TSS API使用新類型Py_tss_t而不是int來表示TSS密鑰,這將允許在本地TLS密鑰定義的平臺上構(gòu)建CPython。
PEP 562:定制對模塊屬性的訪問
Python 3.7支持在模塊上定義__getattr __(),并且只要沒有找到模塊屬性就會調(diào)用它。也允許在模塊上定義__dir __()。
PEP 564:time內(nèi)置函數(shù)支持納秒
為了避免精度損失,PEP 564在timemodule添加了六個新“納秒”(nanosecond)變量:
time.clock_gettime_ns()
time.clock_settime_ns()
time.monotonic_ns()
time.perf_counter_ns()
time.process_time_ns()
time.time_ns()
PEP 565:在__main__中默認(rèn)顯示DeprecationWarning
DeprecationWarning的默認(rèn)處理已更改,以便默認(rèn)情況下再次顯示這些警告,但僅當(dāng)觸發(fā)它們的代碼直接在__main__模塊中運行時才會顯示。
PEP 560:新增支持類型模塊和泛型
PEP引入了兩種特殊方法__class_getitem __()和__mro_entries__,這些方法現(xiàn)在被大多數(shù)類和特殊構(gòu)造用于輸入。結(jié)果,不同類型的各種操作的速度提高了7倍,可以使用泛型而沒有元類沖突,并且修改了類型模塊中長期存在的一些bug。
PEP 552:基于哈希的.pyc文件
PEP 552擴(kuò)展了pyc格式,允許源文件的哈希值用于invalidation,而不是源timestamp。這種.pyc文件稱為“hash-based”。默認(rèn)情況下,Python仍然使用基于時間戳的invalidation,并且不會在運行時生成基于哈希的.pyc文件。可以使用py_compile或compileall生成基于哈希的.pyc文件。
PEP 545:Python文檔翻譯
PEP 545描述了創(chuàng)建和維護(hù)Python文檔翻譯的過程。添加了三種語言的翻譯:
?日本:https://docs.python.org/ja/
?法語:https://docs.python.org/fr/
?韓國:https://docs.python.org/ko/
開發(fā)運行時模式:-X dev
新的-X dev命令行選項或newPYTHONDEVMODE環(huán)境變量可用于啟用CPython的開發(fā)模式。在開發(fā)模式下,CPython執(zhí)行額外的運行時檢查,這些檢查無法在默認(rèn)情況下啟用。
性能提升及文檔下載
根據(jù)官方文檔表示,新升級的各種優(yōu)化使 Linux 上的 Python 啟動時間減少了 10%,而 macOS 上的啟動時間更是減少了 30%。
由于字節(jié)碼更改,方法調(diào)用現(xiàn)在可以快 20%。
由于PEP 560工作,typing導(dǎo)入時間減少了 7 倍,現(xiàn)在許多 typing 操作也更快。
等等優(yōu)化,還有更多。
Python官網(wǎng)有非常全面的文檔,是今天剛剛更新的:
也列出了轉(zhuǎn)換為新版本會遇到的問題和應(yīng)對方法:
現(xiàn)在,Python 3.7.0 已經(jīng)可以下載:https://www.python.org/downloads/
還等什么,趕快用起來!
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4381瀏覽量
64911 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86787
原文標(biāo)題:Python 3.7.0 來了!
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
?如何在虛擬環(huán)境中使用 Python,提升你的開發(fā)體驗~

零基礎(chǔ)入門:如何在樹莓派上編寫和運行Python程序?

運行OVModelForCausalLM Python模塊時出錯了,怎么解決?
Python Connector for InterBase連接解決方案
使用Python實現(xiàn)xgboost教程
使用Python進(jìn)行串口通信的案例
對比Python與Java編程語言
電腦是已經(jīng)安裝了python2.7,為什么打開GUI的script window時,一直提示未找到python2.7?
第二屆大會回顧第25期 | OpenHarmony上的Python設(shè)備應(yīng)用開發(fā)

使用Python進(jìn)行Ping測試

評論