在看代码的时候有看见使用__import__而不是常用的import 库的方式导入,
示例如下
frame_name = mini_frame
app_name = application
# import frame_name --->找frame_name.py
frame = __import__(frame_name) # 返回值标记这 导入的这个模板
app = getattr(frame, app_name) # 此时app就指向了 mini_frame模块中的application这个函数
在开发过程中由于不能确定框架中想要使用的具体名称以及其中的函数,因此需要用变量去存储,而如果直接用import frame_name则会导致了函数在运行的时候会在当前路径下直接导入fame_name.py文件,而实际想要调用的则是mini_frame.py文件,因此使用__import__而不是import的方式导入。
同时由于导入的过程中会存在想要导入的文件不是当前路径,往往需要在之前加上以下代码
sys.path.append(conf_info['dynamic_path']) # 这里将路径修改为dynamic,就可以导入dynamic/mini_frame模块中的application这个函数