溫馨提示×

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

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

Python 3.8新功能有哪些

發(fā)布時(shí)間:2021-11-03 17:24:58 來(lái)源:億速云 閱讀:159 作者:iii 欄目:編程語(yǔ)言

這篇文章主要講解了“Python 3.8新功能有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Python 3.8新功能有哪些”吧!

1. 新模塊:讀取元數(shù)據(jù)歷

使用新的importlib.metadata模塊可以讀取第三方包的元數(shù)據(jù)??梢栽? 腳本包中獲取版本號(hào)。

2. 字典反轉(zhuǎn):排序

現(xiàn)在,字典可以用resersed( )在反轉(zhuǎn)插入排序中實(shí)現(xiàn)迭代了。

3. Continue – finally

由于Python的實(shí)現(xiàn)問(wèn)題,以前在Finally子句中添加continue語(yǔ)句是不合法的?,F(xiàn)在這一問(wèn)題已不復(fù)存在。

for i inrange(2): 
    try: 
        print(i) 
    finally: 
        print('A sentence.') 
        continue 
        print('This never shows.') 
# Python <= 3.7 >>SyntaxError: 'continue'not supported inside 'finally' clause 
# Python 3.8 
>>0 
   A sentence. 
   1 
   A sentence.

4. 指示參數(shù)類型:讓代碼更強(qiáng)大

Python函數(shù)只接受兩種參數(shù)。

位置參數(shù):根據(jù)函數(shù)定義的參數(shù)位置來(lái)傳遞參數(shù)。
關(guān)鍵字參數(shù):使用關(guān)鍵字來(lái)指定參數(shù)。
在下例中,參數(shù)a和參數(shù)b的值可由位置參數(shù)或關(guān)鍵字參數(shù)確定,非常靈活。

def my_func(a, b=1): 
    return a+bmy_func(5,2)     # both positional arguments 
my_func(a=5,b=2) # both keyword arguments

新版本的Python用語(yǔ)法/和*作區(qū)分,提供了指定接受位置參數(shù)或關(guān)鍵字參數(shù)的方法。注意:語(yǔ)法*并不是在Python 3.8中才出現(xiàn)。

在下面的例子中,開頭的兩個(gè)參數(shù)a和b只接受位置參數(shù),中間的c和d可接受位置參數(shù)或關(guān)鍵字參數(shù),最后的e和f只接受關(guān)鍵字參數(shù)。

defmy_func(a, b, /, c, d, *, e, f): 
    return a+b+c+d+e+f 
my_func(1,2,3,4,5,6)          # invalid  as e and f are keyword-only 
my_func(a=1,b=2,3,4,e=5,f=6) # invalid as a and b are position-only 
my_func(1,2,c=3,4,e=5,f=6)    # returns  21 
my_unc(1,2,c=3,d=4,e=5,f=6)  # returns 21

為什么要犧牲靈活性呢?如果參數(shù)名稱隨意且無(wú)用,就應(yīng)該排除關(guān)鍵字參數(shù)。如果預(yù)計(jì)函數(shù)中的參數(shù)名可能會(huì)發(fā)生變化,指定參數(shù)類型能避免代碼崩潰,也能讓代碼更加強(qiáng)大。

5. 賦值表達(dá)式:提升代碼可讀性

賦值表達(dá)式,又稱海象運(yùn)算符,是以:=為語(yǔ)法形式的新運(yùn)算符,它能把較大表達(dá)式中的某部分賦值給變量。這無(wú)疑是Python 3.8中討論最多的新功能了。

來(lái)看個(gè)例子: 賦值表達(dá)式b := a**2 將a的平方,也就是36,賦值給b,然后檢查b的值是否大于0。

a =6 
# The following statement 
# assigns the value a ** 2 to  variable b, 
# and then check if b > 0 is  true 
if (b := a **2) >0: 
    print(f'The  square of {a} is .') # The square of 6 is 36.

有時(shí)賦值表達(dá)式能讓代碼更加簡(jiǎn)潔可讀。但是,請(qǐng)注意不要濫用賦值表達(dá)式,因?yàn)樵谀承┣闆r下它會(huì)讓代碼更加難懂。

# DON'T DO THIS! 
a = 5 
d = [b := a+1, a := b-1, a := a*2]

其他(老)程序語(yǔ)言中也有賦值表達(dá)式,希望改用Python的程序員們能(多)用這一新功能。在賦值表達(dá)式泛濫之前趕快掌握它吧。

6. F字符串2.0: 調(diào)試(debug)的利器

Python f字符串改變了游戲規(guī)則。F字符串是格式化字符串的語(yǔ)法,簡(jiǎn)潔且易讀。利用語(yǔ)法f'{expr}',在引號(hào)前加上f,將表達(dá)式用大括號(hào)括住,就能夠?qū)⒈磉_(dá)式插入字符串。

Python更新之后,等于號(hào)“=”能夠在f字符串f'{expr=}'語(yǔ)法中作為格式限定符使用。輸出的字符串為變量名=變量值,如下所示:

# DON'T DO THIS! 
a = 5 
d = [b := a+1, a := b-1, a := a*2]

出于編制文件或調(diào)試 (Debug) 的需要,常需要指明變量值。F字符串使得調(diào)試(debug)易如反掌。

當(dāng)然,在投身Python 3.8編程之前,你需要掌握Python基本功能(必不可少)。

這就是Python的6大新功能,每個(gè)Python新手都能從中獲益。

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

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

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

AI