使用 import * 时如何检查导入的内容

How to check what gets imported when you use import *

我是 python 的新手。我有一个非常基本的问题。当我们使用以下命令时(我知道使用 * 导入所有内容效率不高) from _ (任意模块名称) import *

如何检查使用上述命令导入的内容?

您可以使用dir查看当前模块中有哪些名称。通过比较导入前后的名字可以看出导入了什么:

>>> vars_before_import = set(dir())
>>> from json import *
>>> set(dir()) - vars_before_import
set(['load', 'JSONEncoder', 'dump', 'vars_before_import', 'JSONDecoder', 'dumps', 'loads'])

排除vars_before_import:

>>> set(dir()) - vars_before_import - {'vars_before_import'}
set(['load', 'JSONEncoder', 'dump', 'JSONDecoder', 'dumps', 'loads'])

注意

这不会捕获已被替换的对象(例如,您在导入 json 中的所有内容之前定义了 load)。