本文鏈接:https://www.cnblogs.com/tujia/p/14468242.html
一、原理
1)sys.path 添加環境變量目錄
sys.path.append(<dir_name>)
2)__import__ 函數導入模塊
_module = __import__(<module_name>)
3)getattr 獲取類
getattr(<module_name>, <class_name>)
注:如果需要實例化類的話,后面加個括號:getattr(<module_name>, <class_name>)()
二、實例
說明:加載 tasks 目錄里的所以類,並執行 run 方法
import sys import pathlib from tools import istring sys.path.append('tasks') def run(task): items = [] if task != '': _module = __import__(task) _class = istring.ucwords(task) items.append(getattr(_module, _class)()) else: for x in pathlib.Path('tasks').iterdir(): if x.name == '__pycache__': continue _module = __import__(x.stem) _class = istring.ucwords(x.stem) items.append(getattr(_module, _class)()) for task in items: task.run() if __name__ == '__main__': task = sys.argv[1] if len(sys.argv) == 2 else '' run(task)
注:istring 是我自己寫的助手類,這個需要按自己的類命名規則處理一下 ~
本文鏈接:https://www.cnblogs.com/tujia/p/14468242.html
完。