所以我试图把一堆“从 x 导入 x”语句,看起来像这样:
from class_foo import class_foo
变成动态的东西。我正在尝试将路径传递给目录并让它导入其中的所有模块。
def dynamicImport(dirPath):
filez = os.listdir(dirPath)
for file in filez:
if "class" in file:
oname = file[:-3] #cut off the file extension, trivial
imp_statement = "from " + oname + " import " + oname
#when I print imp_statement, I can verify it's being concatenated correctly
exec(imp_statement)
当我运行这个函数并传递一个路径时,语句字符串被正确创建并且它不会产生任何错误,但是稍后我将尝试访问一个导入的对象,并且会发生这种情况:
foo = class_foo()
NameError: name 'class_foo' is not defined
显然我做错了什么。任何帮助,将不胜感激。