天天看點

使用Python這麼多年,才發現Python還有這些實用的功能和特點

在使用Python多年以後,我偶然發現了一些我們過去不知道的功能和特性。一些可以說是非常有用,但卻沒有充分利用。考慮到這一點,我編輯了一些你應該了解的Python功能特色。

帶任意數量參數的函數

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

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

使用Python這麼多年,才發現Python還有這些實用的功能和特點

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

使用Python這麼多年,才發現Python還有這些實用的功能和特點

使用Glob()查找檔案

大多Python函數有着長且具有描述性的名字。但是命名為glob()的函數你可能不知道它是幹什麼的除非你從别處已經熟悉它了。

它像是一個更強大版本的listdir()函數。它可以讓你通過使用模式比對來搜尋檔案。

使用Python這麼多年,才發現Python還有這些實用的功能和特點

你可以像下面這樣查找多個檔案類型:

使用Python這麼多年,才發現Python還有這些實用的功能和特點

如果你想得到每個檔案的絕對路徑,你可以在傳回值上調用realpath()函數:

使用Python這麼多年,才發現Python還有這些實用的功能和特點

調試

下面的例子使用inspect子產品。該子產品用于調試目的時是非常有用的,它的功能遠比這裡描述的要多。

這篇文章不會覆寫這個子產品的每個細節,但會展示給你一些用例。

使用Python這麼多年,才發現Python還有這些實用的功能和特點

生成唯一ID

在有些情況下你需要生成一個唯一的字元串。我看到很多人使用md5()函數來達到此目的,但它确實不是以此為目的。

其實有一個名為uuid()的Python函數是用于這個目的的。

使用Python這麼多年,才發現Python還有這些實用的功能和特點

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

為了減少重複的情況,你可以使用這兩個函數。

使用Python這麼多年,才發現Python還有這些實用的功能和特點

序列化

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

使用Python這麼多年,才發現Python還有這些實用的功能和特點

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

使用Python這麼多年,才發現Python還有這些實用的功能和特點

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

壓縮字元

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

使用Python這麼多年,才發現Python還有這些實用的功能和特點

注冊Shutdown函數

有可子產品叫atexit,它可以讓你在腳本運作完後立馬執行一些代碼。想要一起學習交流想要共同進步的可以加python學習q-u-n-227-435-450 ,裡有許多學習視訊資料等待着大家

假如你想在腳本執行結束時測量一些基準資料,比如運作了多長時間:

使用Python這麼多年,才發現Python還有這些實用的功能和特點

打眼看來很簡單。隻需要将代碼添加到腳本的最底層,它将在腳本結束前運作。但如果腳本中有一個緻命錯誤或者腳本被使用者終止,它可能就不運作了。

當你使用atexit.register()時,你的代碼都将執行,不論腳本因為什麼原因停止運作。

喜歡這篇文章的話,記得轉發+評論哦!同時也歡迎大家和小編一起交流Python知識哦!