gpt4 book ai didi

python 自动(或动态)导入包中的类

转载 作者:太空宇宙 更新时间:2023-11-03 23:50:58 24 4
gpt4 key购买 nike

我正在编写某种自动化测试套件,我想确保包“tests”中包含的类在运行时自动导入到主命名空间中,而不是将它们添加到 __init__ 包的文件。

这是我目前的脚本:

import os

for dirpath, dirnames, filenames in os.walk('tests'):
for filename in filenames:
if filename.lower().endswith(('.pyc', '__init__.py')): continue

module = ".".join([dirpath, filename.split('.')[0]])

print module

如果我使用 modulename = __import__(module),类将添加到模块“modulename”,而不是主命名空间。

我的问题是,如何将它们导入当前命名空间?

所以我可以做这样的事情:

testcase = TestCase()
testcase.run()
results = testcase.results()

或主脚本中的任何内容,而无需显式导入类。

提前致谢!

感谢大家的回复和帮助我。

最佳答案

要从某个模块获取类,可能有更好的方法,但这里是让您入门的通用方法

mod = __import__("mod")
for klass in vars(mod):
o = getattr(mod, klass)
if type(o) == type:
print o

关于python 自动(或动态)导入包中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/981753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com