Python 學習筆記 ——反射的應用

在Python中,反射的核心本質就是以字符串的形式去導入個模塊,利用字符串的形式去執行函數。

temp = 'sys'
import sys

通常情況下,我們直接用import導入某個模塊,但如果不許用import 直接導入,而要求直接用字符串導入,這就需要用到一個內置函數,看下面的代碼。

temp = 'sys'
model = __import__(temp)
print model.path

我們來設想一下,2個數據庫,一個mysql(主),一個sqlsever,突然在某種情況下,mysql服務器down機了,需要馬上切換到sqlsever上,看下面的代碼,如果運用了反射,就可以直接修改temp的字符串進行簡單快速的修改。

temp = 'mysel'
model = __import__(temp)
model.xxxx   #進行對數據庫的操作

再來設想一下,某個url,www.xxxx.com/index/login 這是登陸頁面,www.xxxx.com/index/logout這是登出界面,/ 後字符串的不同返回的結果也不同,這就需要用到反射來簡化,只需要寫入不同的程序,就可以通過url的不同來指向不同的函數方法去執行,這就把繁瑣的問題簡單化了。

data = raw_input('請輸入地址:')
array = data.split('/')


userspance = __import__('function.'+array[0])

model = getattr(userspance,array[0])
func = getattr(model,array[1])
func()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章