反射: 通過字符串的形式來導入模塊,并以字符串的形式執行函數
#例: 根據變量temp, 來導入模塊 sys。這樣實現了通過字符串的形式來導入模塊
# 通過 __import__ 函數來獲取字符串中定義的模塊
temp = 'sys'
model1 = __import__(temp)
print model1.path
# 例:以字符串的形式執行函數,
# 通過 getattr 函數來獲取字符串定義的模塊中的方法。
func = 'path'
Func = getattr(model1, func)
for i in Func:
print i
應用,大部分應用在web框架中。
# 目錄結構: 當前目錄下有backend項目包
#- backend
# - __init__.py
# - account.py # 里邊有 def login(): 函數
#- __init__.py
#- index.py #當前文件
# 輸入 account/login
date = raw_input('輸入地址: ')
lis = date.split('/')
userspance = __import__('backend.' + lis[0])
model = getattr(userspance, lis[0])
func = getattr(model, lis[1])
func()