2009-06-13 70 views
91
當前模塊的屬性參考

我試圖做的是這樣的命令行:如何獲得在Python

>>> import mymodule 
>>> names = dir(mymodule) 

我怎樣才能得到一個參考mymodule定義的所有名稱從mymodule本身?

事情是這樣的:

# mymodule.py 
names = dir(__thismodule__) 

回答

103

只需使用全局變量()

全局() - 返回字典 表示當前全局符號 表。這總是當前模塊的字典 (在 功能或方法中,這是定義它的模塊 ,而不是調用它的模塊 )。

http://docs.python.org/library/functions.html#globals

+3

有什麼辦法可以訪問調用模塊的gloabals()而不是定義模塊嗎? – dimo414 2012-07-22 07:02:35

+5

您可能會嘗試從追溯模塊(http://docs.python.org/library/traceback.html)獲取調用者的全局變量,但這是進入黑暗魔法領域。我不知道你在做什麼,但如果你需要的話,你可能想重新考慮你的設計。 – 2012-07-24 14:37:52

10

還檢查了內置inspect模塊。它可以非常方便。

+1

預計有相關的用法示例。這個鏈接可能在這裏變得毫無價值。 – IAbstract 2018-01-26 13:56:28

121

如前所述,globals爲您提供了一個字典,而不是dir(),它提供了模塊中定義的名稱列表。我通常看到這樣做的方式是這樣的:

import sys 
dir(sys.modules[__name__])