自动化测试框架中model层下有不少类,用来操做mysql的,使用的时候须要把所有的类加载进来,须要使用到动态加载类mysql
使用pkgutil,内置的方法,经常使用的话有两个方法sql
iter_modules(path=None, prefix='')
Yields (module_loader, name, ispkg) for all submodules on path, or, if path is None, all top-level modules on sys.path.
path
是包的目录路径,prefix是输出时,全部包的名字的前缀。用来获取该path下的子模块或子包。框架
walk_packages(path=None, prefix='', onerror=None)
Yields (module_loader, name, ispkg) for all modules recursively on path, or, if path is None, all accessible modules.
同上,可是这个方法是递归获取路径下的全部模块。测试
# 动态加载modelsql中全部类 for importer_sql, modname, ispkg_sql in pkgutil.walk_packages(path=modelsql.__path__, prefix=modelsql.__name__+'.', onerror=lambda x: None): exec('from ' + modname + ' import *')
至关于对目录下全部的类执行了import *的操做spa