【发布时间】:2018-03-24 03:25:40
【问题描述】:
使用有效的python源文件,是否可以在下面的import语句中判断c的性质?
from a.b import c
比如c是包、模块、类、变量还是函数? ast 模块会帮助这项任务吗?进一步研究c 的用法有帮助吗?
或者我们必须执行这个语句并查看c 的属性来判断?
这样做的动机是对代码库进行一些分析,以了解哪些包/模块被大量使用,以及文件之间是如何相互关联的。
【问题讨论】:
-
不可能静态知道,必须检查语句的执行结果
-
Hack:如果
c.__file__没有给你AttributeError那么它就是一个模块 -
如果
c不是模块,那么可以使用type(c)进行测试
标签: python python-import