我已经读过this related question,但是我无法应用任何给定的答案。
我有几个测试脚本,它们都使用在公共文件中实现的相同功能。
公共文件以以下import
语句开头:
from Class1 import Class1
from Class2 import Type1 as Class2
from Class3 import Type1 as Class3
from Class4 import Class4
from Class5.Type1 import Class5
from Class6.Type1 import Class6
我希望能够为某些测试脚本更改Type1
。
目前,我只是从公共文件中取出相关语句,然后将它们放在每个要测试类型的测试文件中。
但是我正在寻找一种“更精细”的方法,例如,传递一个表示类型的字符串,并根据该输入字符串动态导入。
这将使我最小化测试脚本。
我想我可能需要将import
语句放在测试脚本所调用的函数中,但是我很好。
我到底该如何实现?
我没有尝试过臭名昭著的eval
,因为:
任何想法都会非常感激。
谢谢!
答案 0 :(得分:0)
您可以使用内置的importlib
模块
import importlib
type_str = function_that_determines_this_val()
module = importlib.import_module(module)
obj = getattr(module, type_str)
不确定这正是您要寻找的东西,但是importlib
可能正是您要寻找的东西。