這篇文章主要講解了“Python3.8有什么新特性”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python3.8有什么新特性”吧!
目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、乳山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
> ????本篇文章大約需要2分鐘來閱讀。屆時(shí)你將學(xué)到:
如何在表達(dá)使用使用全新的賦值法:=
如何在定義方法時(shí)限制形參類型/
更好得調(diào)試代碼技巧f"{expr=}"
其他需要你適應(yīng)的python38
特性
(PEP 572)這將是python有史以來最大的改變,它的寫法與go非常相似。使得對變量的賦值可以發(fā)生在表達(dá)式的內(nèi)部。至于為什么叫海象賦值法..
我們繼續(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 ]
請盡量將海象運(yùn)算符的使用限制在清晰的場合中,以降低復(fù)雜性并提升可讀性。
(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不可用位置形參
f'{expr=}'
記錄表達(dá)式與調(diào)試文檔(bro-36817)增加 =
說明符用于 f-string,它將額外輸出變量的引用值,例如:
import moment today = moment.now() print(f"{today=} , have a great time ~") # output today=, have a great time ~
這邊我們挑選了幾個(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
模塊加入了Literal
與Final
, 類型檢查任重而道遠(yuǎn)
? pathlib
及os.path
針對部分異常字符路徑將返回False
而不是報(bào)錯(cuò)
? math
模塊添加了dist,hypot,prod,isqrt
4個(gè)新函數(shù),具體詳查
除了以上幾項(xiàng),更多新特性請?jiān)L問https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html
感謝各位的閱讀,以上就是“Python3.8有什么新特性”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python3.8有什么新特性這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!