最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 3.8 新功能來(lái)一波(大部分人都不知道)

 更新時(shí)間:2020年03月11日 10:16:24   作者:田瀟文  
Python 3.8 是Python語(yǔ)言的最新版本,它適合用于編寫(xiě)腳本、自動(dòng)化以及機(jī)器學(xué)習(xí)和Web開(kāi)發(fā)等各種任務(wù)。這篇文章主要介紹了Python 3.8 新功能(大部分人都不知道),需要的朋友可以參考下

Python 是一門(mén)廣受好評(píng)的編程語(yǔ)言,每個(gè)版本的更新都會(huì)對(duì)開(kāi)發(fā)社區(qū)帶來(lái)一定影響。近日,Python 3.8 已進(jìn)入 beta 2 版本的測(cè)試中,各項(xiàng)新特性已經(jīng)添加完畢,最終版本預(yù)計(jì)于今年 10 月發(fā)布。

從事計(jì)算機(jī)領(lǐng)域工作的讀者朋友對(duì) Python 編程語(yǔ)言應(yīng)該非常熟悉了。這是一門(mén)廣受好評(píng)的動(dòng)態(tài)編程語(yǔ)言,其靈活和語(yǔ)法簡(jiǎn)易的特點(diǎn)使得這門(mén)語(yǔ)言在腳本工具、數(shù)據(jù)分析、Web 后端都有廣泛的應(yīng)用。Python 開(kāi)發(fā)社區(qū)也非?;钴S,3.x 的版本迭代速度非???。2018 年 6 月底,Python 3.7 問(wèn)世,之后 Python 3.8 的開(kāi)發(fā)和測(cè)試工作也已經(jīng)展開(kāi)。近日,Python 軟件基金會(huì)公開(kāi)了 3.80b2 的說(shuō)明文檔,向公眾展示了 beta 版本的測(cè)試進(jìn)展,以及 Python 3.8 版本的新特性和功能改進(jìn)。

目前,Python 3.8 的 beta 測(cè)試流程正在進(jìn)行中。今年 6 月初,官方發(fā)布了第一個(gè) beta 版本——Python 3.80b1,緊接著一個(gè)月后發(fā)布了 Python 3.80b2。第二個(gè) beta 版本發(fā)布后,Python 3.8 新特性已經(jīng)添加完畢。官方目前已公布最終版本的發(fā)布時(shí)間,預(yù)計(jì)在今年的 10 月份。

文檔地址:https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html#summary-release-highlights

正文

Python 3.8 是Python語(yǔ)言的最新版本,它適合用于編寫(xiě)腳本、自動(dòng)化以及機(jī)器學(xué)習(xí)和Web開(kāi)發(fā)等各種任務(wù)。

現(xiàn)在Python 3.8已經(jīng)進(jìn)入官方的beta階段,這個(gè)版本帶來(lái)了許多語(yǔ)法改變、內(nèi)存共享、更有效的序列化和反序列化、改進(jìn)的字典和更多新功能。

Python 3.8還引入了許多性能改進(jìn)??偟膩?lái)說(shuō),我們即將擁有一個(gè)更快、更精確、更一致和更現(xiàn)代的Python。

下面是Python 3.8的新功能和最重要的改變,我總結(jié)了一些開(kāi)發(fā)中用得到的,常用的特性。

1.賦值表達(dá)式

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

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

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

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

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

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

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

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

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

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

輸出4。

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

輸出為x+1=4。

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

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

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

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

5.Typing模塊的改進(jìn)

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

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

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

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

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

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

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

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

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

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

8.性能改進(jìn)

許多內(nèi)置方法和函數(shù)的速度都提高了20%~50%,因?yàn)橹霸S多函數(shù)都需要進(jìn)行不必要的參數(shù)轉(zhuǎn)換。

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

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

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

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

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

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

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

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

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

10.如何下載Python 3.8

從Python 軟件基金會(huì)下載Python 3.8 beta版:https://www.python.org/downloads/release/python-380b1/

到此這篇關(guān)于Python 3.8 新功能來(lái)一波(大部分人都不知道)的文章就介紹到這了,更多相關(guān)Python 3.8 新功能內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Flask和Django中解決跨域請(qǐng)求問(wèn)題

    使用Flask和Django中解決跨域請(qǐng)求問(wèn)題

    這篇文章主要介紹了使用Flask和Django中解決跨域請(qǐng)求問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • Tornado Application的實(shí)現(xiàn)

    Tornado Application的實(shí)現(xiàn)

    本文主要介紹了Tornado Application的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • python pandas獲取csv指定行 列的操作方法

    python pandas獲取csv指定行 列的操作方法

    這篇文章主要介紹了pandas獲取csv指定行,列的操作方法,本文簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python中類變量和實(shí)例變量的區(qū)別

    Python中類變量和實(shí)例變量的區(qū)別

    這篇文章主要介紹了Python中類變量和實(shí)例變量的區(qū)別,文章針對(duì)Python類變量和實(shí)例變量的問(wèn)題,給出了具體說(shuō)明和演示,需要的小伙伴可以參考一下
    2022-02-02
  • 使用Python進(jìn)行文件讀寫(xiě)操作的基本方法

    使用Python進(jìn)行文件讀寫(xiě)操作的基本方法

    今天的內(nèi)容來(lái)介紹 Python 中進(jìn)行文件讀寫(xiě)操作的方法,這在學(xué)習(xí) Python 時(shí)是必不可少的技術(shù)點(diǎn),希望可以幫助到正在學(xué)習(xí) python的小伙伴,以下是 Python 中進(jìn)行文件讀寫(xiě)操作的基本方法,需要的朋友可以參考下
    2025-01-01
  • 如何在Python中引用其他模塊

    如何在Python中引用其他模塊

    這篇文章主要介紹了如何在Python中引用其他模塊,在Python中,除了可以自定義模塊外,還可以引用其他模塊,主要包括使用標(biāo)準(zhǔn)庫(kù)和第三方模塊,下面文章分別詳細(xì)的介紹,需要的小伙伴可以參考一下
    2022-06-06
  • Python 給我一個(gè)鏈接西瓜視頻隨便下載爬蟲(chóng)

    Python 給我一個(gè)鏈接西瓜視頻隨便下載爬蟲(chóng)

    這篇文章主要介紹了Python通過(guò)一個(gè)鏈接爬取西瓜視頻,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Python中Tkinter組件Listbox的具體使用

    Python中Tkinter組件Listbox的具體使用

    本文主要介紹了Python中Tkinter組件Listbox的具體使用,Listbox組件用于顯示一個(gè)選擇列表,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • python通用日志使用小結(jié)

    python通用日志使用小結(jié)

    日志則是程序中非常重要的一部分,它可以記錄程序運(yùn)行中的異常、警告等信息,方便開(kāi)發(fā)人員調(diào)試程序,本文就來(lái)介紹一下python通用日志使用小結(jié),感興趣的可以了解一下
    2023-11-11
  • Pandas之groupby( )用法筆記小結(jié)

    Pandas之groupby( )用法筆記小結(jié)

    這篇文章主要介紹了Pandas之groupby( )用法筆記小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論

桂平市| 永和县| 霍林郭勒市| 永城市| 泰来县| 十堰市| 沙田区| 建湖县| 宁阳县| 新巴尔虎左旗| 高邮市| 运城市| 嘉祥县| 尖扎县| 鹤岗市| 进贤县| 苗栗县| 财经| 徐州市| 安吉县| 潮安县| 山东| 永福县| 涟源市| 民权县| 读书| 大渡口区| 布拖县| 永福县| 沙田区| 民权县| 剑川县| 益阳市| 克山县| 新化县| 三江| 双桥区| 家居| 准格尔旗| 乡城县| 洛隆县|