您好,登錄后才能下訂單哦!
# -*- coding: utf-8 -*- #知識點:反射 #通過字符串的形式去導入模塊,這就是反射 #并以字符串的形式執(zhí)行函數(shù) #先看簡單的小粒子 temp = 'mysql' #這個字符串是模塊的名字(也就是mysql.py或sqlserver.py,后綴名不用寫) func = 'count' #這個字符串是函數(shù)的名字(也就是mysql.py/sqlserver.py中的函數(shù)count) model = __import__(temp) #以字符串的形式導入模塊 #執(zhí)行模塊中的函數(shù)第一種方法 print model.count() #執(zhí)行模塊中的函數(shù)第二種方法 Function = getattr(model,func) #以字符串的形式執(zhí)行函數(shù) print Function() #下面模擬一個數(shù)據(jù)庫連接的小粒子 #準備以下兩個文件 ''' mysql.py文件模擬連接mysql數(shù)據(jù)庫,連接正常返回1 # -*- coding: utf-8 -*- def count(): return 1 sqlserver.py文件模擬連接sqlserver數(shù)據(jù)庫,連接正常返回2 # -*- coding: utf-8 -*- def count(): return 2 ''' #注意:mysql.py和sqlserver.py兩個文件自行定義即可,這里近用于模擬作用 #并非是實際連接數(shù)據(jù)庫的語句 def db_count(db_name): temp = db_name #模塊的名字(也就是mysql或sqlserver) func = 'count' #函數(shù)的名字(也就是mysql.py/sqlserver.py中的函數(shù)count) model = __import__(temp) Function = getattr(model,func) #以字符串的形式執(zhí)行函數(shù) return Function() #目前模擬的是默認連接sqlserver數(shù)據(jù)庫 status = db_count('sqlserver') #檢查連接sqlserver的狀態(tài)(正常狀態(tài)為: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
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。