Python檢視模組(變數、函式、類)方法
在匯入模組之後,開發者往往需要了解模組包含哪些功能,比如包含哪些變數、哪些函式、哪些類等,還希望能檢視模組中各成員的幫助資訊,掌握這些資訊才能正常地使用該模組。
為了檢視模組包含什麼,可以透過如下兩種方式:
使用 dir() 函式。
使用模組本身提供的 __all__ 變數。
前面章節已經介紹過 dir() 函式的基本用法,該函式可用於返回模組或類所包含的全部程式單元(包括變數、函式、類和方法等),但直接使用 dir() 函式預設會列出模組內所有的程式單元,包括以下畫線開頭的程式單元,而這些以下畫線開頭的程式單元其實並不希望被外界使用。
比如在 Python 的互動式直譯器中執行如下命令來匯入 string 模組(Python 內建的用於豐富字串功能的模組):
>>> import string
然後透過 dir() 函式來檢視該模組的內容,將可以看到如下輸出結果:
>>> dir(string) ['Formatter', 'Template', '_ChainMap', '_TemplateMetaclass', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_re', '_string', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace']
很明顯,該模組內有大量以下畫線開頭的程式單元,其實這些程式單元並不希望被其他程式使用,因此列出這些程式單元意義不大。 為了過濾這些以下畫線開頭的程式單元,我們可以使用如下列表推導式來列出模組中的程式單元: 此命令使用 for 迴圈的列表推導式列出了 dir(string) 返回的所有不以下畫線開頭的程式單元,它們才是該模組希望被其他程式使用的程式單元。 此外,本章前面還介紹過模組中的 __all__ 變數,該變數相當於該模組開放的功能介面,因此也可透過該模組的 __all__ 變數來檢視模組內的程式單元。例如,在互動式直譯器中輸入如下命令: 對比前面列表推導式列出的結果和此處 __all__ 變數列出的結果,不難發現二者的輸出結果大致相同,這說明使用這兩種方式都可以檢視到模組所包含的程式單元。>>> [e for e in dir(string) if not e.startswith('_')]
['Formatter', 'Template', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits',
'octdigits', 'printable', 'punctuation', 'whitespace']
>>> string.__all__
['ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable',
'punctuation', 'whitespace', 'Formatter', 'Template']
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/430/viewspace-2837302/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python檢視模組下的函式Python函式
- Python:檢視已安裝模組 和 檢視可匯入模組Python
- django 的類檢視和函式檢視-雜談Django函式
- Python檢視模組幫助/文件Python
- Python課堂筆記 第7章 包、模組、函式與變數作用域Python筆記函式變數
- python threading模組有哪些函式Pythonthread函式
- 四、聊聊 pytest 的模組級、函式級、類級、方法級函式
- python---函式引數、變數Python函式變數
- python函式變長引數Python函式
- 使用 Python 函式進行模組化Python函式
- Python 函式和變數作用域Python函式變數
- Python如何檢視安裝了哪些模組?Python
- Python如何將函式儲存在模組中Python函式
- python IO模組【二】:open函式詳解Python函式
- socket模組函式函式
- 未知領域系列:Python基礎之迴圈,條件,包,函式,模組和變數作用域Python函式變數
- Python學習筆記_函式_匯入模組Python筆記函式
- 路徑佈局-基於數學函式的檢視佈局方法函式
- No.7、函式模組函式
- 【6】Django檢視函式Django函式
- [轉載] python數學計算模組之math常用函式學習使用Python函式
- 『無為則無心』Python函式 — 36、Python中的模組Python函式
- Python函式與模組的精髓與高階特性Python函式
- 藉助Python 函式進行模組化程式碼Python函式
- python將函式寫入模組中的小技巧Python函式
- php禁用函式設定及檢視方法詳解PHP函式
- Python中檢查變數是否為整數5種方法Python變數
- 函式外與函式內的變數函式變數
- Django - 檢視層 - 檢視函式及快捷方式Django函式
- 如何檢視 Apache 模組是否正常Apache
- Python 檢視當前環境所有變數的大小Python變數
- python–模組之random隨機數模組Pythonrandom隨機
- Lua封裝函式模組並由其他模組呼叫封裝函式
- re模組 函式模式詳解函式模式
- Java - 24 類變數和類方法Java變數
- python的os模組的常見函式及用途詳解Python函式
- 從零開始學Python:第八課-函式和模組Python函式
- 從A到Z,26個實用Python模組/函式速覽Python函式