2017-07-14 74 views
0

我想列出列表中包含子模塊調用的所有函數調用。在我的情況下,它是os模塊的os_list。我想存儲os.path模塊調用的調用以及this.For函數調用的識別我正在使用「__call」,什麼是用於識別模塊。如何找到模塊中的子模塊調用

for name in dir(os): 
    attr = getattr(os, name) 
    if hasattr(attr, '__call__'): 
     os_list.append(name) 
+0

讓它更清晰一點。你正在試圖找到所有在當前或目標模塊中使用的'os'函數? – CommonSense

回答

1

您可以使用[Python]: isinstance(object, classinfo)檢查對象類型。
對於模塊的classinfo參數應該是[Python]: types.ModuleType

isinstance(attr, types.ModuleType) 

雖然我們關於這個問題,你可以對功能做同樣的。所以,你的代碼看起來像:

from types import BuiltinFunctionType, FunctionType, ModuleType 

# ... 

os_list = list() 
for name in dir(os): 
    attr = getattr(os, name) 
    if isinstance(attr, (BuiltinFunctionType, FunctionType, ModuleType)): 
     os_list.append(name) 

@ EDIT0:包括內置的功能也是如此。

+0

這是否回答你的問題? – CristiFati