[轉載] python通過反射執行程式碼
場景:python2.7沒有@註解 用於實現介面卡模式,不能再方法執行前後維護一些全域性變數。所以用反射的思路來統一呼叫一個方法來執行其他的函式。
比如以下例子是為了維護一個長期使用的mysql連線,以此減少mysql的訪問壓力。在每次執行其他方法的時候呼叫
self.conn = conn_app_db.check_conn(self.conn),以此來維護連線,或者產生新連線(通過conn.ping方法判斷是否連線斷開)。
class upload_article(object):
def __init__(self):
self.conn = conn_app_db.check_conn(None)
def query_one_artice(self,a):
try:
print self.conn
sql = "select md5_url,title,author,content from article_url_log limit 1"
cursor = self.conn.cursor()
cursor.execute(sql)
result = cursor.fetchall()
if result is None:
return None
else:
return result
cursor.close()
except Exception,e:
print e
def excute_function(self,fn_name,param):
#這個用於檢查連線是否可用
self.conn = conn_app_db.check_conn(self.conn)
print "conn is healthy"
print "start to excute function "+fn_name
result = getattr(self, fn_name, None)(param)
return result
總結:getattr可以通過名字返回物件的屬性和函式,最後通過代入引數執行函式。
相關文章
- [轉載]ubuntu中執行python指令碼UbuntuPython指令碼
- 通過 Redis 定時執行指令碼Redis指令碼
- GraalVM 21.0提供執行Java程式碼的第三種方式:Espresso通過Truffle框架執行Java程式碼 - graalvmLVMJavaEspresso框架
- shell指令碼命令 執行python檔案&python命令列執行python程式碼指令碼Python命令列
- Python通過代理多執行緒抓取圖片Python執行緒
- 程式碼精簡執行過程
- Python 計算程式執行多久程式碼Python
- 通過 HelloWorld 瞭解 Java 程式執行過程以及執行時記憶體Java記憶體
- ELF PHP 可執行程式執行後載入重型指令碼的過程PHP行程指令碼
- 如何用iPad執行Python程式碼?iPadPython
- 用GPU來執行Python程式碼GPUPython
- 通過Python掃描程式碼關鍵字並進行預警Python
- 轉載]遠端執行程式碼的利用行程
- https多執行緒下載程式碼HTTP執行緒
- 通過dylib實現iOS執行時Native程式碼注入(動態除錯)iOS除錯
- iOS Jailbreak Principles - Undecimus 分析(三)通過 IOTrap 實現核心任意程式碼執行iOSAI
- 轉載_Linux程式與執行緒的區別Linux執行緒
- [譯]通過HTTPS協議執行你的Flask程式HTTP協議Flask
- matlab程式碼轉exe可執行軟體Matlab
- 使用 Eager Execution 編碼並執行圖表:以通過 RevNet 優化程式碼為例優化
- 20 行 Python 程式碼實現加密通訊Python加密
- 執行緒-集合-反射執行緒反射
- .net 程式通過 crontab 無法啟動,手動執行指令碼可以啟動指令碼
- 通過行為引數化傳遞程式碼
- 007 Rust 非同步程式設計,通過 join 執行 FutureRust非同步程式設計
- vim設定一鍵執行python程式碼Python
- 如何透過Python程式碼旋轉PDF頁面Python
- python爬蟲之多執行緒、多程式+程式碼示例Python爬蟲執行緒
- 程式碼執行
- 執行python指令碼後臺執行Python指令碼
- [求指導] 如何通過程式碼分析一個查詢語句的執行效率
- 通過Rxjs五行程式碼實現EventBusJS行程
- 通過原始碼理解 Java 執行緒池的核心引數原始碼Java執行緒
- Java 程式執行過程Java
- [譯] 通過 SSH 遠端使用 Python 直譯器來執行 FlaskPythonFlask
- C#呼叫IronPython動態執行Python程式碼C#Python
- python3 通過 pybind11 使用Eigen加速程式碼Python
- Spark程式碼在叢集上執行過程理解Spark