如何测试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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |