Python3.8的新功能有哪些-創(chuàng)新互聯(lián)

小編給大家分享一下Python 3.8的新功能有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

我們提供的服務(wù)有:網(wǎng)站設(shè)計制作、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、千陽ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的千陽網(wǎng)站制作公司

Python 3.8是Python語言的最新版本,它適合用于編寫腳本、自動化以及機器學(xué)習(xí)和Web開發(fā)等各種任務(wù)?,F(xiàn)在Python 3.8已經(jīng)進入官方的beta階段,這個版本帶來了許多語法改變、內(nèi)存共享、更有效的序列化和反序列化、改進的字典和更多新功能。

Python 3.8還引入了許多性能改進??偟膩碚f,我們即將擁有一個更快、更精確、更一致和更現(xiàn)代的Python。下面是Python 3.8的新功能和最重要的改變。

1.賦值表達式

Python 3.8最明顯的變化就是賦值表達式,即:=操作符。賦值表達式可以將一個值賦給一個變量,即使變量不存在也可以。它可以用在表達式中,無需作為單獨的語句出現(xiàn)。

Python 3.8的新功能有哪些

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

賦值表達式遵循了Python一貫簡潔的傳統(tǒng),就像列表解析式一樣。其目的在于避免在特定的Python編程模式中出現(xiàn)一些枯燥的樣板代碼。例如,上述代碼用一般寫法需要多寫兩行代碼。

2.僅通過位置指定的參數(shù)

僅通過位置指定的參數(shù)是函數(shù)定義中的一個新語法,可以讓程序員強迫某個參數(shù)只能通過位置來指定。這樣可以解決Python函數(shù)定義中哪個參數(shù)是位置參數(shù)、哪個參數(shù)是關(guān)鍵字參數(shù)的模糊性。

僅通過位置指定的參數(shù)可以用于如下情況:某個函數(shù)接受任意關(guān)鍵字參數(shù),但也能接受一個或多個未知參數(shù)。Python的內(nèi)置函數(shù)通常都是這種情況,所以允許程序員這樣做,能增強Python語言的一致性。

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

Python 3.8的新功能有哪些

符號 / 分隔了位置參數(shù)和關(guān)鍵字參數(shù)。在這個例子中,所有參數(shù)都是未知參數(shù)。在以前版本的Python中,z會被認為是關(guān)鍵字參數(shù)。但采用上述函數(shù)定義,pow(2, 10)和pow(2, 10, 5)都是正確的調(diào)用方式,而pow(2, 10, z=5)是不正確的。

3.支持f字符串調(diào)試

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

Python 3.8的新功能有哪些

輸出4。

在f字符串表達式末未添加=可以輸出f表達式本身的值,后面是計算后的值

Python 3.8的新功能有哪些

輸出為x+1=4。

4.多進程共享內(nèi)存

在Python 3.8中,multiprocessing模塊提供了SharedMemory類,可以在不同的Python進城之間創(chuàng)建共享的內(nèi)存區(qū)域。

在舊版本的Python中,進程間共享數(shù)據(jù)只能通過寫入文件、通過網(wǎng)絡(luò)套接字發(fā)送,或采用Python的pickle模塊進行序列化等方式。共享內(nèi)存提供了進程間傳遞數(shù)據(jù)的更快的方式,從而使得Python的多處理器和多內(nèi)核編程更有效率。

共享內(nèi)存片段可以作為單純的字節(jié)區(qū)域來分配,也可以作為不可修改的類似于列表的對象來分配,其中能保存數(shù)字類型、字符串、字節(jié)對象、None對象等一小部分Python對象。

5.Typing模塊的改進

Python是動態(tài)類型語言,但可以通過typing模塊添加類型提示,以便第三方工具驗證Python代碼。Python 3.8給typing添加了一些新元素,因此它能夠支持更健壯的檢查:

final修飾器和Final類型標注表明,被修飾或被標注的對象在任何時候都不應(yīng)該被重寫、繼承,也不能被重新賦值。

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

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

6.新版本的pickle協(xié)議

Python的pickle模塊提供了一種序列化和反序列化Python數(shù)據(jù)結(jié)構(gòu)或?qū)嵗姆椒?,可以將字典原樣保存下來供以后讀取。不同版本的Python支持的pickle協(xié)議不同,而最新版本的支持范圍更廣、更強大、更有效的序列化。

Python 3.8引入的第5版pickle協(xié)議可以用一種新方法pickle對象,它能支持Python的緩沖區(qū)協(xié)議,如bytes、memoryviews或Numpy array等。新的pickle避免了許多在pickle這些對象時的內(nèi)存復(fù)制操作。

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

7.可反轉(zhuǎn)字典

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

8.性能改進

許多內(nèi)置方法和函數(shù)的速度都提高了20%~50%,因為之前許多函數(shù)都需要進行不必要的參數(shù)轉(zhuǎn)換。

一個新的opcode緩存可以提高解釋器中特定指令的速度。但是,目前實現(xiàn)了速度改進的只有LOAD_GLOBAL opcode,其速度提高了40%。以后的版本中也會進行類似的優(yōu)化。

文件復(fù)制操作如shutil.copyfile()和shutil.copytree()現(xiàn)在使用平臺特定的調(diào)用和其他優(yōu)化措施,來提高操作速度。

新創(chuàng)建的列表現(xiàn)在平均比以前小了12%,這要歸功于列表構(gòu)造函數(shù)如果能提前知道列表長度的情況下進行的優(yōu)化。

Python 3.8中向新型類(如class A(object))的類變量中的寫入操作變得更快。operator.itemgetter()和collections.namedtuple()也得到了速度優(yōu)化。

9.Python C API和CPython實現(xiàn)

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

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

CPython的另一個新的C API——"vectorcall"調(diào)用協(xié)議——可以實現(xiàn)針對Python內(nèi)部方法更快的調(diào)用,而無需創(chuàng)建臨時對象。該API依然不穩(wěn)定,但已有了明顯的改善。該API計劃在Python 3.9中成熟。

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

以上是Python 3.8的新功能有哪些的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前文章:Python3.8的新功能有哪些-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://bm7419.com/article2/didgic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)用戶體驗、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)