我有一个脚本,可以从子目录 mymodules 中导入(可能)每个* .py。此文件夹包含__init__.py
,其中包含__all__ = ['mod1', 'mod2', ...]
。这些是手动添加到__init__.py
。
模块的数量和名称可能会不时变化,但始终需要提供相同的功能func1, func2, func3(n)
。
我如何检查导入了哪些模块(例如__all__
,并且子目录提供了 mod1 和 mod2 ,所以我想要print("mod1, mod2")
)
我考虑阅读__init__.py
文件,解析__all__
列表,然后将其与 mymodules 的listdir
进行比较。也许有一种更快或更简单的方式。
我还需要检查是否所有三个函数func1, func2, func3(n)
都存在。我最初的想法是阅读文件,解析并检查def func1():
等等,但同样,我认为有更好的方法。