通过哪个函数能查看python文件中引用了哪些包?

通过哪个函数能查看python文件中引用了哪些包?

from A import B
from AA import BB

如以上代码,我如何在这个脚本中通过函数,返回[B, BB]?

阅读 5.9k
2 个回答
import re
import os

for k, v in locals().items():
    if isinstance(v, type(re)) and not k.startswith('__'):
        print k
        
        

使用locals可以获取当前的局部变量,也可以用globals。

定義如下的 function:

def find_import():
    return {key:value for key, value in globals().items()
            if isinstance(value, type(sys)) and not key.startswith('__')}

函數 find_import() 會返回一個字典,以被匯入的包名為 key, 包對象為 value。

測試:

import sys
from os import path

def find_import():
    return {key:value for key, value in globals().items()
            if isinstance(value, type(sys)) and not key.startswith('__')}

for key, value in find_import().items():
    print key, value

結果:

sys <module 'sys' (built-in)>
path <module 'posixpath' from '(your python path)/lib/python2.7/posixpath.pyc'>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题