加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 13:02:24 所属栏目:Python 来源:网络整理
导读:Python模块也是对象.所以我想可以通过这种方式测试给定对象是否是模块(/ package): import sys,os,my_module isinstance(sys,ModuleClass)True isinstance(os,ModuleClass)True isinstance(my_module,ModuleClass)True isinstance(5,ModuleClass)False 除了
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”只是我发明的名字,我在文档中找不到它是否真的存在以及它叫什么.

是否有这样的课程?它是在我错过的文档中的某个地方吗?

如果没有,是否有另一种方法来查看对象是否是一个模块?如果它与实现无关,那就更好了.

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

听起来像hasattr(obj,’__ package__’)(PEP 366)是一个可能的权宜之计,但AFAICT并没有特别的理由确信未来的更新不会将__package__放入其他一些完全不相关的对象中.我更喜欢一种感觉更强大的解决方案.

解决方法

你可以使用 inspect.ismodule

>>> import inspect
>>> import os
>>> os2 = object()
>>> inspect.ismodule(os)
True
>>> inspect.ismodule(os2)
False

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读