1.反射的基本函数
python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。
#!/usr/bin/env python #-*- coding:utf-8 -*- class Foo(object): def __init__(self,name,age): self.name=name self.age=age def talk(self): print 'i am alex%s'%self.name obj=Foo('alex',18) print Foo.__dict__ # #### 检查是否含有成员 #### print hasattr(obj,'name') print hasattr(obj,'talk') print hasattr(obj,'aaa') # #### 获取成员 #### func=getattr(obj,'talk') func() print getattr(obj,'name') #以下不常用 # #### 设置成员 #### setattr(obj, 'age', 18) setattr(obj, 'show', lambda num: num + 1) # #### 删除成员 #### delattr(obj, 'name') delattr(obj, 'func')
2.动态加载模块,并获取方法
index文件
#!/usr/bin/env python #-*- coding:utf-8 -*- control,action=raw_input('请输入需要执行的函数:').split('/') #动态加载模块 modules=__import__(control) #判断需要加载的方法是否存在 if hasattr(modules,action): #获取方法 func=getattr(modules,action) #执行方法 print func() else: #方法不存在,返回404错误 print '404 error'
home文件
#!/usr/bin/env python #-*- coding:utf-8 -*- def func1(): return 'this is func1' def func2(): return 'this is func2' def func3(): return 'this is func3'