python递归类包含和实例化
这段代码中的问题是在循环中使用了递归的类引用和实例化。问题的根本原因是在循环中通过字符串拼接方式导入模块并实例化类,这种方式会导致类的递归引用和实例化出现错误。
解决这个问题的方法是避免在循环中使用字符串拼接方式导入模块和实例化类。可以考虑使用其他的方式来处理这个需求。
以下是修改后的代码示例:
import os #get files files = os.listdir("some-dir/") classes = [] for f in files: #find python modules in file listing if f.endswith(".py"): #remove file extension module_name = os.path.splitext(f)[0] #import module module = __import__(module_name) #instantiate class class_instance = getattr(module, module_name)() #add class instance to the list classes.append(class_instance)
修改后的代码使用`__import__`函数导入模块,并使用`getattr`函数获取模块中的类实例。这样可以避免字符串拼接导致的问题,并正确地实例化类。
希望这个解决方案能帮助你朝着正确的方向前进。不喜欢使用`exec()`函数的方式,抱歉。