您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python3.8有什么新特性”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python3.8有什么新特性”吧!
> ????本篇文章大約需要2分鐘來閱讀。屆時你將學到:
如何在表達使用使用全新的賦值法:=
如何在定義方法時限制形參類型/
更好得調試代碼技巧f"{expr=}"
其他需要你適應的python38
特性
(PEP 572)這將是python有史以來最大的改變,它的寫法與go非常相似。使得對變量的賦值可以發生在表達式的內部。至于為什么叫海象賦值法..
我們繼續看下面兩個例子
常規方法
a = [0,1,2,3,4] n = len(a) if n < 10: print(f"數據長度為{n}, 且小于10")
使用海象賦值法
a = [0,1,2,3,4] if (n := len(a)) < 10: print(f"數據長度為{n}, 且小于10")
第二個方法相比第一次減少了 n = len(a)
的賦值過程,轉而寫在了if
表達式當中,并使n
可以繼續在下文中使用。
再例如列表推導式,我們需要判斷迭代每項i的計算結果ii是否符合條件,并將結果生成列表。
[ii for i in range(1,101) if (ii := i**2 ) > 200 ]
請盡量將海象運算符的使用限制在清晰的場合中,以降低復雜性并提升可讀性。
(PEP 570)新增了一個函數形參語法/
用來指明某些函數形參必須使用僅限位置而非關鍵字參數的形式。
例如demo
方法,在/
之前的a
只可以用位置形參,在*
之后的c
只可以用關鍵字形參。
def demo(a, /, b, *, c): print(a, b, c) demo(1, 2, c=3) # 正確 demo(a=1, 2, 3) # 錯誤,a不可用關鍵字形參 demo(1, 2, 3) # 錯誤,c不可用位置形參
f'{expr=}'
記錄表達式與調試文檔(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 ~
這邊我們挑選了幾個較為常用的特性及更新來簡單列舉一下
? yield
表達式將在推導式和生成器中不被允許使用
? continue
語句將在 finally
表達式中被允許使用
? dict
現可通過 reversed
方法按照插入順序倒序
? asyncio
的任務現在可以被命名
? pickle
模塊使用的默認協議現在為 Protocol 4
, 短小且精悍
? shutil
模塊上的copy
相關方法效率提高26%到50%
? typing
模塊加入了Literal
與Final
, 類型檢查任重而道遠
? pathlib
及os.path
針對部分異常字符路徑將返回False
而不是報錯
? math
模塊添加了dist,hypot,prod,isqrt
4個新函數,具體詳查
除了以上幾項,更多新特性請訪問https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html
感謝各位的閱讀,以上就是“Python3.8有什么新特性”的內容了,經過本文的學習后,相信大家對Python3.8有什么新特性這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。