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
語句在模組中定義的每個函式和類的描述符。返回的字典將模組級函式和類名對映到它們的描述符。巢狀物件將輸入到其父級的子級字典中。與 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
字典派生,但仍保留用於向後相容。