首頁 後端開發 Python教學 一文了解Python 3.8的新功能

一文了解Python 3.8的新功能

Aug 19, 2019 pm 05:58 PM
新功能

一文了解Python 3.8的新功能

Python 3.8是Python語言的最新版本,它適合用於編寫腳本、自動化以及機器學習和Web開發等各種任務。現在Python 3.8已經進入官方的beta階段,這個版本帶來了許多語法改變、記憶體共享、更有效的序列化和反序列化、改進的字典和更多新功能。

Python 3.8也引進了許多效能改進。總的來說,我們即將擁有一個更快、更精確、更一致、更現代的Python。以下是Python 3.8的新功能和最重要的改變。

1.賦值表達式

Python 3.8最明顯的變化就是賦值表達式,即:=運算子。賦值表達式可以將一個值賦給一個變量,即使變數不存在也可以。它可以用在表達式中,無需以單獨的語句出現。

一文了解Python 3.8的新功能

上例中,如果變數line不存在則會被創建,然後將file.readline()的回傳值賦給它。然後檢查line是否為"end"。如果不是,則讀取下一行,保存在line中,然後繼續測試。

賦值表達式遵循了Python一貫簡潔的傳統,就像列表解析式一樣。其目的在於避免在特定的Python程式設計模式中出現一些枯燥的樣板程式碼。例如,上述程式碼用一般寫法需要多寫兩行程式碼。

相關推薦:《Python影片教學

#2.僅透過位置指定的參數

僅透過位置指定的參數是函數定義中的新語法,可以讓程式設計師強迫某個參數只能透過位置來指定。這樣可以解決Python函數定義中哪個參數是位置參數、哪個參數是關鍵字參數的模糊性。

僅透過位置指定的參數可以用於如下情況:某個函數接受任意關鍵字參數,但也能接受一個或多個未知參數。 Python的內建函數通常都是這種情況,所以允許程式設計師這樣做,能增強Python語言的一致性。

Python文件中給出的例子如下:

一文了解Python 3.8的新功能

#符號 / 分隔了位置參數和關鍵字參數。在這個例子中,所有參數都是未知參數。在先前版本的Python中,z會被認為是關鍵字參數。但採用上述函數定義,pow(2, 10)和pow(2, 10, 5)都是正確的呼叫方式,而pow(2, 10, z=5)是不正確的。

3.支援f字串偵錯

f字串格式可以更方便地在同一個表達式內進行輸出文字和值或變數的計算,而且效率更高。

一文了解Python 3.8的新功能

輸出4。

在f字串表達式末未新增=可以輸出f表達式本身的值,後面是計算後的值

一文了解Python 3.8的新功能

##輸出為x 1 =4。

4.多進程共享記憶體

在Python 3.8中,multiprocessing模組提供了SharedMemory類,可以在不同的Python進城之間創建共享的記憶體區域。

在舊版的Python中,進程間共享資料只能透過寫入檔案、透過網路套接字傳送,或採用Python的pickle模組進行序列化等方式。共享記憶體提供了進程間傳遞資料的更快的方式,從而使得Python的多處理器和多核心程式設計更有效率。

共享記憶體片段可以作為單純的位元組區域來分配,也可以作為不可修改的類似列表的物件來分配,其中能保存數字類型、字串、位元組物件、None物件等一小部分Python物件。

5.Typing模組的改進

Python是動態型別語言,但可以透過typing模組加入型別提示,以便第三方工具驗證Python程式碼。 Python 3.8為typing添加了一些新元素,因此它能夠支援更健壯的檢查:

final修飾器和Final類型標註表明,被修飾或被標註的物件在任何時候都不應該被重寫、繼承,也不能被重新賦值。

Literal類型將表達式限定為特定的值或值的清單(不一定是同一個類型的值)。

TypedDict可以用來建立字典,其特定鍵的值被限制在一個或多個類型上。注意這些限制僅用於編譯時確定值的合法性,而不能在執行時進行限制。

6.新版的pickle協定#

Python的pickle模組提供了一種序列化和反序列化Python資料結構或實例的方法,可以將字典原樣保存下來以供以後讀取。不同版本的Python支援的pickle協定不同,而最新版本的支援範圍更廣、更強大、更有效的序列化。

Python 3.8引入的第5版pickle協定可以用一種新方法pickle對象,它能支援Python的緩衝區協議,如bytes、memoryviews或Numpy array等。新的pickle避免了許多在pickle這些物件時的記憶體複製操作。

NumPy、Apache Arrow等外部函式庫在各自的Python綁定中支援新的pickle協定。新的pickle也可以作為Python 3.6和3.7的插件使用,可以從PyPI上安裝。

7.可反轉字典

Python3.6中重寫了字典,其使用了PyPy專案貢獻的一個新實作。除了更快、更緊湊之外,現在的字典還會繼承元素的順序——元素會按照添加的順序排列,就像列表一樣。 Python 3.8也允許在字典上使用reversed()。

8.效能改進

許多內建方法和函數的速度都提高了20%~50%,因為之前許多函數都需要不必要的參數轉換。

一個新的opcode快取可以提高解釋器中特定指令的速度。但是,目前實現了速度改進的只有LOAD_GLOBAL opcode,其速度提高了40%。以後的版本中也會進行類似的最佳化。

檔案複製操作如shutil.copyfile()和shutil.copytree()現在使用平台特定的呼叫和其他最佳化措施,來提高操作速度。

新建立的清單現在平均比以前小了12%,這要歸功於列表建構函式如果能提前知道列表長度的情況下進行的最佳化。

Python 3.8中向新型類別(如class A(object))的類別變數中的寫入操作變得更快。 operator.itemgetter()和collections.namedtuple()也得到了速度最佳化。

9.Python C API和CPython實作

Python最近的版本在CPython(C語言編寫的Python的參考實作)中使用的C API重構方面下了很大功夫。到目前為止這些工作還在不斷添加,現有的成果包括:

Python初始化配置(Python Initialization Configuration)有了個新的C API,可以實現對Python初始化例程更緊密的控制和更詳細的回饋。如此一來,將Python運行時嵌入到其他應用程式中就會更容易,也可以以程式設計方式給Python程式傳遞啟動參數。新的API也確保了所有Python配置控制都有一個單一的、一致的位置,因此以後的改變(如Python的新的UTF-8模式)也更為容易。

CPython的另一個新的C API——"vectorcall"調用協定-可以實現針對Python內部方法更快的調用,而無需建立臨時物件。該API依然不穩定,但已有了明顯的改善。該API計劃在Python 3.9中成熟。

Python運行時的審計鉤子為Python運行時提供了兩個API,可以用來勾住事件,從而保證測試框架、日誌和審計系統等外部工具能夠監視到它們。

10.如何下載Python 3.8

從Python 軟體基金會下載Python 3.8 beta版:https://www.python.org/downloads/release/python -380b1/

以上是一文了解Python 3.8的新功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

iPadOS18新功能 iPadOS18新功能 Jun 12, 2024 pm 10:41 PM

今日凌晨,蘋果正式發布了iPadOS18,該系統不僅擁有iOS18當中的經典功能,而且還新增了一些獨特的功能,例如支援數學筆記計算器等,進一步提升了iPad用戶的體驗感,有興趣的朋友快來看看。這次iPadOS18不僅完美繼承了iOS18的核心功能,如個性化的控制中心設計,允許用戶根據個人偏好自由調整控制項順序和佈局,以及備受期待的遊戲模式,為遊戲玩家提供了更流暢、更沉浸的遊戲體驗,也特別針對iPad的大螢幕優勢和ApplePencil的創意用途,加入了多項獨特功能,進一步拓展了iPad的生產力

微軟Edge瀏覽器新功能「超拖曳」上線! 微軟Edge瀏覽器新功能「超拖曳」上線! Mar 04, 2024 pm 06:31 PM

小編近日得知,微軟Edge瀏覽器新功能「超級拖曳」上線,解鎖新分頁開啟連結第四種方式,方便用戶更快開啟連結。目前在微軟Edge瀏覽器中,用戶想要在新分頁中開啟連結或圖像,有以下三種方式:1、右鍵連結或圖像,然後選擇對應的操作選項。 2、拖曳連結或圖片到標籤頁欄。 3.使用滑鼠滾輪點擊連結或圖像。而「超級拖曳」帶來了第四種互動操作,使用者點擊連結、部分文字或圖像,然後將其橫向、向上或向下拖曳一點,即可在新標籤頁中開啟它。使用者拖曳文字之後,會預設呼叫Edge瀏覽器的預設搜尋引擎,開啟新的標籤頁

微信上線新功能:'安靜模式” 微信上線新功能:'安靜模式” Mar 04, 2024 pm 01:43 PM

據了解,微信上線了一個新功能:「安靜模式」。開啟後,微信在訊息通知、音訊視訊通話、視訊號碼內容播放等所有場景下,都不會再發出聲音。在iOS微信更新到最新版本,透過“微信”-“我”-“設定”-“關懷模式”-“安靜模式”,就能開啟。之後,微信在訊息通知、音訊視訊通話、視訊號碼內容播放等所有場景下,都不會再發出聲音。微信表示,這項功能是為了滿足那些無法聽到聲音的人的需求而開發的。對大多數人來說,聲音可能是非常普通和易得的,但他們往往忽略了聾人群體並不具備這種感知能力,儘管他們也像其他人一樣使用手機和微信。據

iOS18新功能爆料 iOS18新功能爆料 Mar 06, 2024 pm 02:25 PM

隨著蘋果即將發布其年度軟體重大更新的iOS18,這無疑將成為2024年備受矚目的熱門版本之一。據傳言,這次更新將堪稱iPhone的史上升級規模最大的軟體升級之一,以下就給大家簡單總結一下相關的功能升級iOS18新功能爆料1、據悉,蘋果或將融入visionOS式風格於iOS18中,給人以耳目一新的操作體驗。 2.據傳聞,該公司正積極測試AI模型,預計在iOS18版本上對Siri進行重大改進。 3.此外,近期蘋果已展開試驗計劃,向AppleCare推出了名為"Ask"的全新工具,旨在提升客戶答詢效率。 4

Windows 11詳細介紹新特性 Windows 11詳細介紹新特性 Dec 23, 2023 pm 03:37 PM

新的win11作業系統為使用者帶來了許多全新的功能和特色,非常的新穎好用給力,而今天我們就為你們帶來了win11有什麼新功能詳細介紹,如果你不清楚就快來詳細了解一下吧。 win11有什麼新功能:1、Win11全新的設計讓UI顯得簡潔美觀,更體現現代化。 2.微軟稱在工作列居中的開始功能表和應用程式圖示能夠讓用戶更迅速地找到需要的內容。 3.Win11的更新包比Win10平均少40%,也就是說這樣運作起來更加的省電,速度也更快。 4.內建的Edge瀏覽器速度也有所提升,在Win11上,新增了多個任務排列方式

win11預覽版Paint畫圖應用程式更新 新增隱藏背景複製可見圖層等 win11預覽版Paint畫圖應用程式更新 新增隱藏背景複製可見圖層等 Apr 11, 2024 pm 07:10 PM

除了Windows更新之外,微軟今天開始也向Canary和Dev頻道推送了最新的畫圖(Paint)應用程式更新,版本號為11.2402.32.0。本次更新改進了畫圖中的畫筆尺寸,為鉛筆、畫筆和橡皮擦工具添加了新的尺寸滑桿。除此之外,微軟還進一步改進了圖層功能,例如在圖層面板中新增的背景選項,使用者可以使用此選項來設定畫布的背景色。如圖所示,你可以開啟圖層面板,然後點擊底部的「背景」圖塊,或使用Ctrl+Shift+B快捷鍵,此時就會召喚出顏色選擇器對話框,然後你就可以選擇任意你喜歡的顏色作

win10 1903版本的最新功能介紹 win10 1903版本的最新功能介紹 Jan 01, 2024 pm 01:33 PM

在微軟再一次推出了新版win101903之後,小夥伴們一定很想知道這次更新微軟又推出了什麼新功能吧。據小編所知,此次更新除了修復了先前版本出現在bug和功能缺陷之外,還新增了內建應用程式可以卸載、壓克力效果的LightTheme、黑白混搭背景等等新內容。 win10最新版本1903新功能1、內建應用程式可以卸載win10系統會內建各種應用,現在win101903可以卸載一部分內建應用程式。卸載僅限於一般應用,至於Edge、應用程式商店無法卸載,畢竟會牽涉到Win10的許多底層功能。 2.亞克力效果的LightTh

PHP8的新功能及其對開發效率的提升進行深入解析 PHP8的新功能及其對開發效率的提升進行深入解析 Jan 13, 2024 am 11:33 AM

深入解析PHP8的新功能,提升開發效率! PHP8是PHP程式語言的最新版本,於2020年11月26日正式發布。這個版本帶來了許多令人興奮的新功能和改進,可以大大提升開發效率。在本文中,我們將深入探討PHP8的一些新功能,並提供具體的程式碼範例。一、JIT編譯器PHP8引進了JIT(Just-In-Time)編譯器,可以將一些熱門的程式碼區塊進行即時編譯,從而提

See all articles