在内置函数中有讲到:
反射说简单点 --> 就是利用字符串的形式去对象(模块)中操作(寻找/检查/删除/设置)成员。
以字符串的形式导入模块,并以字符串的形式执行函数。
反射应用一
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
欢迎登录后台管理