反射的应用

在内置函数中有讲到:
反射说简单点 --> 就是利用字符串的形式去对象(模块)中操作(寻找/检查/删除/设置)成员。
以字符串的形式导入模块,并以字符串的形式执行函数。

反射应用一
demo.py
#!/usr/bin/env python
#coding:utf-8
def Foo():
    print 'demo.foo'

index.py
#!/usr/bin/env python
#coding:utf-8
str1 = 'demo'
str2 = 'Foo'
module = __import__(str1) #导入模块,相当于import demo
func = getattr(module,str2) #去module模块中找Foo函数
func()  #执行这个函数
反射应用二

在浏览器中输入相应的URL,跳转相应的页面

1)、account.py
#!/usr/bin/env python
#coding:utf-8
def login():
    print 'login' 
def logout():
    print 'logout'


2)、admin.py
#!/usr/bin/env python
#coding:utf-8
def index():
    print '欢迎登录后台管理'


3)、index.py
#!/usr/bin/env python
#coding:utf-8
'''
from backend import account
#�淶 xxx/xxx
#account/login
data = raw_input('请输入地址')
#array = data.split('/')
if data == 'account/login':
    account.login()
elif data == 'account/logout':
    account.logout()
'''
data = raw_input('请输入地址')
array = data.split('/')
#array[0] = account
#import backend.account
#backend.account.login()
userspance = __import__('backend.'+array[0])
model = getattr(userspance,array[0])
func = getattr(model,array[1])
func()

#打印结果
请输入地址   account/login
login
请输入地址   account/login
logout
请输入地址   admin/index
欢迎登录后台管理
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,461评论 19 139
  • 反射基础知识链接:http://www.jianshu.com/p/370073fad7e3 反射应用的场景 比如...
    风吹稻子阅读 3,526评论 0 2
  • 提到java语言的高级特性,反射绝对是Top1级别的,在大量开源框架中的应用范例比比皆是,那么需要了解清楚反射到底...
    测试你个头阅读 13,311评论 4 7
  • Java的反射库是一个被精心设计的工具集,使用它编写和动态的操纵java代码。 那么java的反射能做什么呢?官方...
    宝塔山上的猫阅读 3,741评论 0 9
  • 测试环境采用了三台虚拟机,每台4G内存用到的软件有 Download the distribution [全局Co...
    曹振华阅读 12,372评论 5 5