反射: 通过字符串的形式来导入模块,并以字符串的形式执行函数
#例: 根据变量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()
网友评论