通过哪个函数能查看python文件中引用了哪些包?
from A import B
from AA import BB
如以上代码,我如何在这个脚本中通过函数,返回[B, BB]?
定義如下的 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'>
import re
import os
for k, v in locals().items():
if isinstance(v, type(re)) and not k.startswith('__'):
print k
使用locals可以获取当前的局部变量,也可以用globals。