如何测试Python对象是否是模块?

如何测试Python对象是否是模块?,python,Python,Python模块也是对象。因此,我认为可以通过以下方式测试给定对象是否是模块(/package): >>> import sys, os, my_module >>> isinstance(sys, ModuleClass) True >>> isinstance(os, ModuleClass) True >>> isinstance(my_module, ModuleClass) True >>> is

Python模块也是对象。因此,我认为可以通过以下方式测试给定对象是否是模块(/package):

>>> import sys, os, my_module
>>> isinstance(sys, ModuleClass)
True
>>> isinstance(os, ModuleClass)
True
>>> isinstance(my_module, ModuleClass)
True
>>> isinstance(5, ModuleClass)
False
除了“ModuleClass”只是我发明的一个名称,我在文档中找不到它是否真的存在以及它的名称

有这样的课程吗?是不是我在文件里遗漏了什么

如果不是,是否有其他方法可以查看对象是否为模块?如果它是实现不可知的,那就更好了

(我正在使用Python2.7,但我想知道3.x是否有一些新的解决方案也会很有趣。)

这听起来像是hasattr(obj,“\uu package\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。我更喜欢一个感觉更健壮的解决方案。

您可以使用:

你可以做:

from types import ModuleType
print isinstance(obj, ModuleType)

这就是
inspect.ismodule
的定义。谢谢大家!两种解决方案都很棒!
from types import ModuleType
print isinstance(obj, ModuleType)