溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python3.8有什么新特性

發(fā)布時(shí)間:2021-06-29 09:54:35 來源:億速云 閱讀:176 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要講解了“Python3.8有什么新特性”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python3.8有什么新特性”吧!

> ????本篇文章大約需要2分鐘來閱讀。屆時(shí)你將學(xué)到:

  • 如何在表達(dá)使用使用全新的賦值法:=

  • 如何在定義方法時(shí)限制形參類型/

  • 更好得調(diào)試代碼技巧f"{expr=}"

  • 其他需要你適應(yīng)的python38特性

0x01 海象賦值法

(PEP 572)這將是python有史以來最大的改變,它的寫法與go非常相似。使得對(duì)變量的賦值可以發(fā)生在表達(dá)式的內(nèi)部。至于為什么叫海象賦值法..

Python3.8有什么新特性

我們繼續(xù)看下面兩個(gè)例子

  • 常規(guī)方法

    a = [0,1,2,3,4]
    n = len(a)
    
    if n < 10:
    print(f"數(shù)據(jù)長度為{n}, 且小于10")


  • 使用海象賦值法

    a = [0,1,2,3,4]
    
    if (n := len(a)) < 10:
        print(f"數(shù)據(jù)長度為{n}, 且小于10")


第二個(gè)方法相比第一次減少了 n = len(a) 的賦值過程,轉(zhuǎn)而寫在了if表達(dá)式當(dāng)中,并使n可以繼續(xù)在下文中使用。

再例如列表推導(dǎo)式,我們需要判斷迭代每項(xiàng)i的計(jì)算結(jié)果ii是否符合條件,并將結(jié)果生成列表。

[ii for i in range(1,101) if (ii := i**2 ) > 200 ]

請(qǐng)盡量將海象運(yùn)算符的使用限制在清晰的場合中,以降低復(fù)雜性并提升可讀性。

0x02 僅限位置形參

(PEP 570)新增了一個(gè)函數(shù)形參語法/用來指明某些函數(shù)形參必須使用僅限位置而非關(guān)鍵字參數(shù)的形式。

例如demo方法,在/之前的a只可以用位置形參,在*之后的c只可以用關(guān)鍵字形參。

def demo(a, /, b, *, c):
    print(a, b, c)


demo(1, 2, c=3) # 正確
demo(a=1, 2, 3) # 錯(cuò)誤,a不可用關(guān)鍵字形參
demo(1, 2, 3) # 錯(cuò)誤,c不可用位置形參

0x03 f'{expr=}' 記錄表達(dá)式與調(diào)試文檔

(bro-36817)增加 = 說明符用于 f-string,它將額外輸出變量的引用值,例如:

import moment

today = moment.now()
print(f"{today=} , have a great time ~")

# output 
today=<moment(2019-10-18t03:32:01)> , have a great time ~

0x04 部分常用語言特性更新及性能變化(?簡報(bào))

這邊我們挑選了幾個(gè)較為常用的特性及更新來簡單列舉一下

  • ? yield 表達(dá)式將在推導(dǎo)式生成器中不被允許使用

  • ? continue 語句將在 finally 表達(dá)式中被允許使用

  • ? dict 現(xiàn)可通過 reversed 方法按照插入順序倒序

  • ? asyncio 的任務(wù)現(xiàn)在可以被命名

  • ? pickle 模塊使用的默認(rèn)協(xié)議現(xiàn)在為 Protocol 4, 短小且精悍

  • ? shutil模塊上的copy相關(guān)方法效率提高26%到50%

  • ? typing 模塊加入了LiteralFinal, 類型檢查任重而道遠(yuǎn)

  • ? pathlibos.path 針對(duì)部分異常字符路徑將返回False 而不是報(bào)錯(cuò)

  • ? math模塊添加了dist,hypot,prod,isqrt4個(gè)新函數(shù),具體詳查

除了以上幾項(xiàng),更多新特性請(qǐng)?jiān)L問https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html

感謝各位的閱讀,以上就是“Python3.8有什么新特性”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Python3.8有什么新特性這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI