2017-07-14 13 views
0

サブモジュール呼び出しを含むすべての関数呼び出しをリストにまとめたいと思います。私の場合はos_list for osモジュールです。私はos.pathモ​​ジュール呼び出しの呼び出しをこれと一緒に保存したいと思います。関数呼び出しの識別のために、私は "__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) 

私たちが対象にしている間、あなたは機能のために同じことを行うことができます。 EDIT0 @

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) 

::だから、あなたのコードは次のようになり、同様の組み込み関数が含まれています。

+0

これはあなたの質問に答えますか? – CristiFati

関連する問題