# -*- coding: utf-8 -*- #知識點:反射 #通過字符串的形式去導入模塊,這就是反射 #并以字符串的形式執行函數 #先看簡單的小粒子 temp = 'mysql' #這個字符串是模塊的名字(也就是mysql.py或sqlserver.py,后綴名不用寫) func = 'count' #這個字符串是函數的名字(也就是mysql.py/sqlserver.py中的函數count) model = __import__(temp) #以字符串的形式導入模塊 #執行模塊中的函數第一種方法 print model.count() #執行模塊中的函數第二種方法 Function = getattr(model,func) #以字符串的形式執行函數 print Function() #下面模擬一個數據庫連接的小粒子 #準備以下兩個文件 ''' mysql.py文件模擬連接mysql數據庫,連接正常返回1 # -*- coding: utf-8 -*- def count(): return 1 sqlserver.py文件模擬連接sqlserver數據庫,連接正常返回2 # -*- coding: utf-8 -*- def count(): return 2 ''' #注意:mysql.py和sqlserver.py兩個文件自行定義即可,這里近用于模擬作用 #并非是實際連接數據庫的語句 def db_count(db_name): temp = db_name #模塊的名字(也就是mysql或sqlserver) func = 'count' #函數的名字(也就是mysql.py/sqlserver.py中的函數count) model = __import__(temp) Function = getattr(model,func) #以字符串的形式執行函數 return Function() #目前模擬的是默認連接sqlserver數據庫 status = db_count('sqlserver') #檢查連接sqlserver的狀態(正常狀態為:2),如果不能連接,則切換連接到mysql if status != 2: status = db_count('mysql') print '已切換為mysql,連接ID:%d' % status else: print 'sqlserver連接正常,連接ID:%d' % status #測試動作: #1、可將sqlserver.py中的count返回值修改成3
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。