首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查参数是否为Python模块?

检查参数是否为Python模块?
EN

Stack Overflow用户
提问于 2009-10-10 09:18:38
回答 6查看 19K关注 0票数 48

如何(用Python方式)检查一个参数是否是Python模块?没有像模块或包这样的类型。

代码语言:javascript
复制
>>> 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

我可以这样做:

代码语言:javascript
复制
>>> type(os)
<type 'module'>    

但是我把它比作什么呢?

我已经创建了一个简单的模块来快速查找模块中的方法并获取它们的帮助文本。我为我的方法提供了一个模块变量和一个字符串:

代码语言:javascript
复制
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])

当然,即使module = 'abc':那么dir('abc')会给我字符串对象的方法列表,但我不需要它。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-10-10 09:25:46

代码语言:javascript
复制
from types import ModuleType

isinstance(obj, ModuleType)
票数 97
EN

Stack Overflow用户

发布于 2009-10-10 10:13:59

代码语言:javascript
复制
>>> import inspect, os
>>> inspect.ismodule(os)
True
票数 38
EN

Stack Overflow用户

发布于 2009-10-10 09:20:44

这看起来有点老生常谈,但是:

代码语言:javascript
复制
>>> import sys
>>> import os
>>> type(os) is type(sys)
True
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1547466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档