在使用Python多年之後,我偶然發現了一些咱們過去不知道的功能和特性。一些能夠說是很是有用,但卻沒有充分利用。考慮到這一點,我編輯了一些你應該瞭解的Python功能特點。python
帶任意數量參數的函數數據庫
你可能已經知道了Python容許你定義可選參數。但還有一個方法,能夠定義函數任意數量的參數。數組
首先,看下面是一個只定義可選參數的例子函數
如今,讓咱們看看怎麼定義一個能夠接受任意參數的函數。咱們利用元組來實現。學習
使用 Glob() 查找文件ui
大多Python函數有着長且具備描述性的名字。可是命名爲glob()的函數你可能不知道它是幹什麼的除非你從別處已經熟悉它了。spa
它像是一個更強大版本的listdir()函數。它可讓你經過使用模式匹配來搜索文件。調試
你能夠像下面這樣查找多個文件類型:對象
若是你想獲得每一個文件的絕對路徑,你能夠在返回值上調用realpath()函數:圖片
調試
下面的例子使用inspect模塊。該模塊用於調試目的時是很是有用的,它的功能遠比這裏描述的要多。
這篇文章不會覆蓋這個模塊的每一個細節,但會展現給你一些用例。
Python學習qun:5563,70268,這裏是python學習者彙集地,歡迎喜歡Python的小夥伴!
生成惟一 ID
在有些狀況下你須要生成一個惟一的字符串。我看到不少人使用md5()函數來達到此目的,但它確實不是以此爲目的。
其實有一個名爲uuid()的Python函數是用於這個目的的。
你可能會注意到,即便字符串是惟一的,但它們後邊的幾個字符看起來很類似。這是由於生成的字符串與電腦的MAC地址是相聯繫的。
爲了減小重複的狀況,你可使用這兩個函數。
序列化
你曾經須要將一個複雜的變量存儲在數據庫或文本文件中吧?你不須要想一個奇特的方法將數組或對象格轉化爲式化字符串,由於Python已經提供了此功能。
這是一個原生的Python序列化方法。然而近幾年來JSON變得流行起來,Python添加了對它的支持。如今你可使用JSON來編解碼。
這樣更緊湊,並且最重要的是這樣與JavaScript和許多其餘語言兼容。然而對於複雜的對象,其中的一些信息可能丟失。
壓縮字符
當談起壓縮時咱們一般想到文件,好比ZIP結構。在Python中能夠壓縮長字符,不涉及任何檔案文件。
註冊 Shutdown 函數
有可模塊叫atexit,它可讓你在腳本運行完後立馬執行一些代碼。
Python學習qun:5563,70268,這裏是python學習者彙集地,歡迎喜歡Python的小夥伴!
假如你想在腳本執行結束時測量一些基準數據,好比運行了多長時間:
打眼看來很簡單。只須要將代碼添加到腳本的最底層,它將在腳本結束前運行。但若是腳本中有一個致命錯誤或者腳本被用戶終止,它可能就不運行了。
當你使用atexit.register()時,你的代碼都將執行,不論腳本由於什麼緣由中止運行。