自動化測試框架中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