Python內部的秘密 模組與類庫

2021-09-26 12:00:02 字數 2511 閱讀 5122

模組和類庫

1.模組(module)是由一組類、函式與變數所組成,這些類等都儲存在文字檔案中。.py是python程式**檔案的副檔名,模組可能是使用c或是python寫成。模組檔案的副檔名可能是.py(原始文字檔案),或是.pyc(編譯過的.py檔案)。在python目錄底下的lib資料夾中,可以找到這些模組的.py檔案。

在使用某個模組前必須先使用import語句載入這個模組。

語法格式為:

import 《模組名稱》

內建的函式dir() 可以找到模組內定義的所有名稱。使用dir(模組名稱)語句,顯示模組的內容,結果以乙個字串列表的形式返回。

2.類庫(package)是由一組相同資料夾的模組所組成,類庫的名稱必須是sys.path所列的資料夾的子資料夾。每乙個類庫的資料夾中,必須至少有乙個__init__.py檔案。

類庫可以包含子類庫,子類庫的資料夾位於該資料夾之下,子類庫的資料夾中,也必須至少有乙個__init__.py檔案。

以python目錄底下的lib子資料夾來說,xml是乙個類庫。其路徑為python目錄\lib\xml,python目錄\lib\xml資料夾內有乙個__init__.py檔案,其下有dom、parsers、etree和sax三個子資料夾。dom,parsers,與sax都是xml類庫的子類庫,每乙個子資料夾都有乙個_init__.py檔案。

3.模組和類庫的基本操作

import 模組 as 新名稱

或是from 模組 import 函式 as 新名稱

m.__dict__:顯示模組的字典

m.__doc__:顯示模組的檔案字串

m.__name__:顯示模組的名稱

m.__file__:顯示模組的完整檔案路徑

4.自定義模組如果想將自定義的python原始檔作為模組匯入,可以使用import語句。當直譯器遇到import語句,會在當前路徑下搜尋該模組檔案。

乙個模組只會被匯入一次

當適用import語句時,python直譯器會按如下搜尋順序從這些目錄中去尋找引入模組:

注意:當前目錄下定義的檔案不能和標準模組重名,否則在匯入標準模組時將會把那些定義的檔案當成模組來載入,引發錯誤。

若想要使用乙個存放在其他目錄的python程式,或者是其他系統的python程式,可將這些python程式製作成乙個安裝包並安裝到本地,安裝的目錄可以選擇sys.pat**件中的任意乙個目錄。這樣就可以在任何想要使用該python程式的地方,直接使用import匯入即可。

5.執行期服務模組

該模組組包含python直譯器以及環境變數相關的模組

5.1)、sys模組:用於訪問跟python直譯器有關聯的系統相關引數,包括變數與函式

5.2)、type模組:包含python內建型別的名稱。可以使用python直譯器的type(obj)內建函式得到obj物件的內建型別。

5.3)operator模組:含有所有python標準運算子相對應的函式,operator模組是使用c語言寫成的。例如:

6.字串處理模組

該模組組提供各種操作字串的函式

6.1)string模組:提供一般的字串操作函式與常量

6.2)re模組:用來使用正規表示式(regular expression)運算。使用re的一般步驟是先將正規表示式的字串形式編譯為pattern例項,然後使用pattern例項處理文字並獲取匹配結果(乙個match例項),最後使用match例項獲得資訊,進行其他操作。

6.3)struct模組:用於將python的資料與二進位制資料結構進行轉換,轉換後的二進位制資料可應用於c語言和網路傳輸協議內。

7.附屬服務

8.一般作業系統服務

9.其他模組組

redirect模組的秘密

所有的redirect記錄都在config url directs下面,但是某個node edit的redirect記錄只包含redirect到自己的記錄,且不驗證url的合理性。現在比如,a跳轉到b,那麼我們應該到b edit頁面去看是否有redirect記錄。並且,還有.htaccess頁面也會...

黑客類庫 與 python模組

python 必須會使用類庫 name mechansoup 定位是功能性的網頁抓取和互動庫。它最大的特點是可以和網頁互動,填充一些表單。mechansoup 定位是功能性的網頁抓取和互動庫。它最大的特點是可以和網頁互動,填充一些表單。beautifulsoup 最主要的功能是從網頁抓取資料。req...

python之模組與類庫

什麼是模組 模組是一組類,函式,方法所組成的。這些類都儲存在文字檔案中。py是python程式 中的副檔名,模組可能是c或者python寫的。模組的副檔名可以是.py或者是.pyc 經過編譯的.py 檔案 在使用某個模組是 時,必須使用import來載入這個模組。import 模組名稱 也可以使用i...