python的反射

目前大多数网站都是通过路由的方法来,处理url请求,如果有很多个url的话,不停的include或者用if判断匹配,似乎不太符合情理,因此这里讲讲python的反射机制,

自动装在模块。请看下面的实例:

在目录

/myspace/mywork/python/reflect

有两个文件

index.py

account.py

account.py内容

#encoding=utf-8

def login(uname):
print '恭喜你登录成功'+uname

index.py内容

#encoding=utf-8
try:
log_space = __import__('account') #导入模块名称
func = getattr(log_space,'login') #导入方法
func('hello world')
except (ImportError,AttributeError),e:
print '跳转到404页面'

如果是要加载文件夹里面的内容

#encoding=utf-8
data = raw_input('接收输入地址')
array = data.split('/')
try:
userspace = __import__('account.' + array[0]) #如果是account文件夹
model = getattr(userspace,array[0]) #需要再导入一次
func = getattr(model,array[1])
func() except ImportError,e:
print 1,e
print '找不到模块,跳转到404页面' except AttributeError,e:
print 2,e
print '找不到属性,跳转到404页面' except Exception,e:
print 3,e
print '未知的错误' else:
print '没有出错执行' finally:
print '无论出错与否都执行'
上一篇:jQuery使用最广泛的javascript函数库


下一篇:一起学微软Power BI系列-官方文档-入门指南(1)Power BI初步介绍