Joe*_*ley 5 python python-import
我试图找出我的代码库中使用了多少不同的部分。如何最好地遍历导入树并找出导入什么?理想情况下,结果数据可以告诉我
注意:一种选择是使用此帖子运行所有测试和配置文件。然而,测试甚至不是跨代码库,有些区域没有测试,所以这不会有很大的代表性。
由于所有对象都继承自,object您可以通过以下方式获取所有导入对象的列表:
>>> object.__subclasses__()
[<class 'type'>, <class 'weakref'>, ...]
Run Code Online (Sandbox Code Playgroud)
要查找模块,首先使用属性定义一个对象__module__:
>>> type.__module__
'builtins'
Run Code Online (Sandbox Code Playgroud)
所有导入的模块中的一个都dict可以从该sys模块获得。使用模块名称作为键,可以检索模块对象,然后可以从属性中获取文件名__file__(对于大多数模块)。
>>> import sys
>>> import csv
>>> csv_module = sys.modules['csv']
>>> csv_module.__file__
'...lib/python3.6/csv.py'
Run Code Online (Sandbox Code Playgroud)
注意:并非所有模块都包含该__file__属性,尤其是内置模块,请务必用作hasattr(module, "__file__")防护。
我将把如何将它们组合在一起以让你的树变得更好。
| 归档时间: |
|
| 查看次数: |
2782 次 |
| 最近记录: |