您好,登錄后才能下訂單哦!
需求:
因為最近在看python腳本腳本獲取oracle數據庫數據進行oracle數據庫監控,需要用到反射的方式做,去通過傳參調用不同函數去獲取不同的數據庫狀態(python2)
#!/usr/bin/python class?Exucutsql(object): ????def?status(self): ????????print("active") ????def?db(self): ????????print("100M") class?Main(Exucutsql): ????def?__init__(self): ????????pass ????def?__call__(self): ????????method?=?raw_input("please?input?your?method:") ????????if?hasattr(self,method): ????????????func?=?getattr(self,?method) ????????????func() ????????else: ????????????print("input?method?is?not?exits") if?__name__?==?"__main__": ????Main()
說明:輸入相應方法名會調用不用的方法
python類中的特殊方法
__call__()?方法會當作一個函數去執行
hasattr() 方法會判斷在類中是否存在方法
getattr() 方法會去調用執行相應的函數名方法(解決了過多的IF判斷的問題)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。