歡迎光臨
我們一直在努力

用了​Python​這麼多年,揭祕​Python​不為人知的7大功能和特點!

文章摘要: 經常有新人或轉行軟體測試的朋友問我,如果想學測試,應該從哪門語言入手,以前我一般會推薦 Java 和 Python,現在主要推薦 Python。從發展趨勢看來,Python 的發展勢頭有增無減,尤其是在工具指令碼、資料爬取、資料分析和人工智慧領域。大部分庫語言都

經常有新人或轉行軟體測試的朋友問我,如果想學測試,應該從哪門語言入手,以前我一般會推薦 Java 和 Python,現在主要推薦 Python。從發展趨勢看來,Python 的發展勢頭有增無減,尤其是在工具指令碼、資料爬取、資料分析和人工智慧領域。大部分庫語言都是 Python,可見一斑。

下面我總結了一些Python不為人知的功能特性,超好用,希望可以幫你更好的瞭解Python。

帶任意數量引數的函式

你可能已經知道了Python允許你定義可選引數。但還有一個方法,可以定義函式任意數量的引數。

首先,看下面是一個只定義可選引數的例子

現在,讓我們看看怎麼定義一個可以接受任意引數的函式。我們利用元組來實現。

使用Glob查詢檔案

很多Python函式都有一個長的描述其功能的名字。但如果你不是在別的地方見過glob這個函式,你可能很難理解它是做什麼的。

想像一個很有用的listdir函式,它能讓你通過匹配模式來搜尋檔案。

你可以像下面這樣查詢多個檔案型別:

如果你想得到每個檔案的絕對路徑,你可以在返回值上呼叫realpath函式:

除錯

下面的一些例子利用了inspect模組。這個模組對於除錯來說是非常有用的,並且你通該模組可獲得的遠比這裏所描述的要多。

在本文中,我們不會覆蓋這些功能的每一個,但是我將會向你展現一些用例:

生成唯一ID

可能會有一些情形,你需要生成一個唯一的字串。我曾經見過很多人使用md5函式來實現這一需求,儘快它並完全意味著該目的。

其實有一個名為uuid的Python函式是用於這個目的的。

你可能會注意到,即使字串是唯一的,但它們後邊的幾個字元看起來很相似。這是因為生成的字串與電腦的MAC地址是相聯絡的。

爲了降低產生相同字串的機率,你可以使用下面的兩個函式。

序列化

你曾經需要將一個複雜的變數儲存在資料庫或文字檔案中吧?你不需要想一個奇特的方法將陣列或物件格轉化為式化字串,因為Python已經提供了此功能。

這是一個原生的Python序列化方法。然而近幾年來JSON變得流行起來,Python新增了對它的支援。現在你可以使用JSON來編解碼。

這樣更緊湊,而且最重要的是這樣與JavaScript和許多其他語言相容。然而對於複雜的物件,其中的一些資訊可能丟失。

壓縮字元

當談起壓縮時我們通常想到檔案,比如ZIP結構。在Python中可以壓縮長字元,不涉及任何檔案檔案。

註冊Shutdown函式

有可模組叫atexit,它可以讓你在指令碼執行完後立馬執行一些程式碼。

假如你想在指令碼執行結束時測量一些基準資料,比如執行了多長時間:

打眼看來很簡單。只需要將程式碼新增到指令碼的最底層,它將在指令碼結束前執行。但如果指令碼中有一個致命錯誤或者指令碼被使用者終止,它可能就不執行了。

當你使用atexit.register時,你的程式碼都將執行,不論指令碼因為什麼原因停止執行。

總結:

上文中介紹了Python的一些特性,你是否還知道其它的一些Python有用的特性,但還不是廣為人知?可以一起探討下!

最後爲了讓你更深入的瞭解Python,我再來介紹下Python的好處。

1、功能強大,使用簡單,語言唯一性的特徵明顯(唯一性的意思就是你不能用十八種寫法實現一個功能),而且具備海量的第三方庫……Python 程式設計師最愛說的一句話是:人生苦短,我用 Python。

2、Python 支援互動式程式設計、物件導向程式設計、函數語言程式設計、面向切面程式設計、當然還有超程式設計。

並沒有很多的語言能提供像 Python 這樣的多樣性和簡潔性,無論你是編碼新手還是能信手寫就指令碼的大師,都需要了解一下 Python。

未經允許不得轉載:頭條楓林網 » 用了​Python​這麼多年,揭祕​Python​不為人知的7大功能和特點!