Python 自动(或动态)导入包中的类
我正在写一个自动化测试套件,想确保在运行时,'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()
或者其他操作,而不需要明确地导入这些类。
提前谢谢大家!
感谢大家的回复和帮助。