您好,登錄后才能下訂單哦!
需求:
因為最近在看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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。