新聞動態(tài)
Python 3.8 到來,晨展科技帶你了解 6 大重要新特性
行業(yè)資訊 發(fā)布者:cya 2020-01-14 08:53 訪問量:218
一個有活力的編程語言,總是動態(tài)變化以適應技術的發(fā)展。2020年1月1日起,Python 2 將不再得到官方支持,這也基本宣告了它的死亡。
而在數(shù)據(jù)科學熱潮的推動下,以 Python 3 為主的 Python 語言依然是世界上最流行的編程語言。隨著版本的更迭,它的語法不斷更新,有了許多新形式的表達式。想要保持對 python 的“追更”是很難的,但有一些相見恨晚的功能,值得你早點掌握。
于是,我們幫你整理好了這次 Python 3.8 更新中你應該了解的六大新特性,一起來看看吧!
■ 1. 賦值表達式——可讀性
這個新的運算符 := 被稱為海象運算符,因為 := 很像小眼睛長牙齒的海象。它能讓你把一行語句中的某一個表達式賦值給一個變量,同時不影響該語句的原始邏輯。這應該是 Python 3.8 中被人討論最多的一個新功能了??梢钥聪旅娴睦樱?/p>
第 4 行中,賦值語句 b := a**2 將 a 的平方賦值給了 b,同時又讓 b 參與了布爾運算 b > 0:
這樣的賦值語句可以讓你的代碼更加緊湊,同時保持良好的可讀性。但注意不要濫用它,否則在某些情況下可能會讓你的代碼變得更加難懂:
(千萬別這么干?。?/span>
這個運算符在許多(古老的)編程語言中也存在,我預計有許多從其他語言切換到 Python 的程序員都會(濫)用這個新功能來給表達式賦值。
搶在別人前面熟悉這個特性吧。
■ 2. 參數(shù)類型——可靠性
在 Python 中,一個函數(shù)可以接受兩種不同方式指定的參數(shù):
位置參數(shù):按其傳入的順序賦值給對應位置的參數(shù);
關鍵字參數(shù):依據(jù)給定的關鍵字賦值給對應的參數(shù)。
在下面這個例子中,函數(shù)內 a 和 b 兩個參數(shù)的值分別按照位置參數(shù)和關鍵字參數(shù)的方式進行指定,十分靈活。
新版本的 Python 3 提供了一個額外的語法糖,用來指明某些參數(shù)必須使用僅限位置而非關鍵字參數(shù)的形式。具體用法為使用 / 和 * 符號對參數(shù)列表進行分隔。
*注:后面的“*”語法并不是 Python 3.8 里新增的。
在下面的例子中,頭兩個參數(shù) a 和 b 只能用位置參數(shù),中間兩個參數(shù) c 和 d 可以任意使用關鍵字或位置方式指定,最后兩個參數(shù) e 和 f 只能用關鍵字參數(shù)。
為什么需要限制這種靈活性呢?如果你的參數(shù)名沒有什么意義,或者是隨便取的(比如 a、b、i、j 這樣),那你應該排除使用關鍵字傳遞的方式,免得未來你重構或是修改這個函數(shù)的時候,改動參數(shù)的變量名稱會讓其他調用代碼出錯。這樣就能讓你的代碼更加的穩(wěn)定健壯。
■ 3. f 字符串 2.0 版——方便調試
Python 的 f 字符串是一個創(chuàng)舉。它使你可以用優(yōu)雅易懂的方式格式化輸出包含表達式的字符串。它的基本語法是 f'{expr}' ,其中需要計算的表達式被大括號括起來,在字符串引號的前面,用字母 f 進行標記。
本次更新給 f 字符串帶來了一個新的格式化標記:等號“=”。在 f 字符串里,等號跟在表達式的末尾,語法為:f'{expr=}',輸出的字符串將包含變量名稱和其對應的值,如下面這個例子所示:
這樣,在調試時,我們就能方便簡潔地打出變量的值,而不必寫 print('pi =',pi) 這樣重復的語句了。
■ 4. 反向迭代字典——順序
現(xiàn)在 dict 和 dictview 可以使用 reversed() 按插入順序反向迭代。
■ 5. 新增模塊——metadata(元數(shù)據(jù))
新增的 importlib.metadata 模塊使你能夠從第三方包讀取元數(shù)據(jù)。例如,你能用代碼取得其他包的版本號之類的信息。
■ 6. 在 finally 中使用 Continue
由于在實現(xiàn)中存在問題,之前在 finally 子句中不允許使用 continue 語句。在 Python 3.8 中這個限制已經(jīng)被取消了。
■ 一些思考
請注意,本文并未提及Python3.8中新增的一些和普通程序員不太相關的高級特性(比如新的 pickle 協(xié)議,以及新的 multiprocessing.shared_memory 模塊等)。
因為如果你只是為了做些小項目,犯不著為了那些概念費神。如果你真的好奇的話,可以在這里看到完整的更新內容說明:https://docs.python.org/zh-cn/3/whatsnew/3.8.html
上面提到的 6 個新特性,就是本次 Python 3.8 更新中對新人(初學者)比較有用的部分啦。但還是順帶提個醒,在你切換到 Python 3.8之前,請確保已經(jīng)熟練掌握了最基礎的 Python 概念吧!
祝編程愉快!
【推薦閱讀】
關鍵字: Python 3.8 開封晨展科技
文章連接: http://www.hsjyfc.com.cn/hyzx/680.html
版權聲明:文章由 晨展科技 整理收集,來源于互聯(lián)網(wǎng)或者用戶投稿,如有侵權,請聯(lián)系我們,我們會立即刪除。如轉載請保留