python 反射實體,動態應用

先上代碼正則表達式

            # models 比較特殊 須要這種形式
            m = __import__("app.models",{},{},["models"])  
            p = re.compile(r'^' + key + 'info$', re.I)
            for k in m.__dict__:
                if p.match(k):
                    obj = getattr(m, k)().getOne(id)數據庫

 

1. 使用系統函數 __import__   導入包
2. key 是動態參數,是一個字符串
3. 使用正則表達式匹配包裏面的類
4. getattr(m, k)()  獲得實體
5. 由於我這個是用來作數據庫查詢處理的,每一個實體都有 getOne  這個函數,因此就不動態調用了app

相關文章
相關標籤/搜索