Check if a parameter is a Python module?

python, types

Solution

from types import ModuleType

isinstance(obj, ModuleType)

Problem

How can I (pythonically) check if a parameter is a Python module? There's no type like module or package. ``` >>> os <module 'os' from '/usr/lib/python2.6/os.pyc'> >>> isinstance(os, module) Traceback (most recent call last): File "/usr/lib/gedit-2/plugins/pythonconsole/console.py", line 290, in __run r = eval(command, self.namespace, self.namespace) File "<string>", line 1, in <module> NameError: name 'module' is not defined ``` I can do this: ``` >>> type(os) <type 'module'> ``` But what do I compare it to? :( I've made a simple module to quickly find methods in modules and get help texts for them. I supply a module var and a string to my method: ``` def gethelp(module, sstring): # here i need to check if module is a module. for func in listseek(dir(module), sstring): help(module.__dict__[func]) ``` Of course, this will work even if module = 'abc': then dir('abc') will give me the list of methods for string object, but I don't need that.

Original source