pyclbr
— Python 模組瀏覽器支援¶
原始碼: Lib/pyclbr.py
pyclbr
模組提供關於 Python 編碼模組中定義的函式、類和方法的有限資訊。這些資訊足以實現一個模組瀏覽器。資訊是從 Python 原始碼中提取的,而不是透過匯入模組,因此該模組可以安全地用於不可信程式碼。此限制使得此模組無法用於未用 Python 實現的模組,包括所有標準和可選的擴充套件模組。
- pyclbr.readmodule(module, path=None)¶
返回一個字典,將模組級類名對映到類描述符。如果可能,將包含匯入的基類的描述符。引數 module 是一個字串,包含要讀取的模組名稱;它可能是包內的模組名稱。如果給定,path 是一個目錄路徑序列,它會新增到
sys.path
的前面,用於定位模組原始碼。此函式是原始介面,僅為向後相容性保留。它返回以下函式的過濾版本。
- pyclbr.readmodule_ex(module, path=None)¶
返回一個基於字典的樹,其中包含模組中用
def
或class
語句定義的每個函式和類的函式或類描述符。返回的字典將模組級函式和類名對映到它們的描述符。巢狀物件會新增到其父級的 children 字典中。與 readmodule 一樣,module 指定要讀取的模組,path 會新增到 sys.path 的前面。如果讀取的模組是一個包,則返回的字典會有一個鍵'__path__'
,其值是一個包含包搜尋路徑的列表。
3.7 版本新增: 巢狀定義的描述符。它們透過新的 children 屬性訪問。每個都有一個新的 parent 屬性。
這些函式返回的描述符是 Function 和 Class 類的例項。使用者不應建立這些類的例項。
函式物件¶
類物件¶
- class pyclbr.Class¶
類
Class
例項描述由 class 語句定義的類。它們與Functions
具有相同的屬性,並額外有兩個屬性。- file¶
定義類的檔名。
- module¶
定義所描述類的模組名稱。
- name¶
類名。
- lineno¶
檔案中定義開始的行號。
- parent¶
對於頂級類,為
None
。對於巢狀類,為其父級。在 3.7 版本加入。
- children¶
一個字典,將名稱對映到巢狀函式和類的描述符。
在 3.7 版本加入。
- super¶
一個
Class
物件列表,描述所描述類的直接基類。被命名為超類但無法透過readmodule_ex()
發現的類將作為包含類名的字串列出,而不是Class
物件。
- methods¶
一個
dictionary
,將方法名對映到行號。這可以從新的children
字典中派生,但為了向後相容性而保留。