标签:alt ons url print 方法 logo 内置函数 技术 函数
反射的作用:反射得作用是提高代码可读行。
__import__导入模块和import导入模块的区别:
__import__导入模块是通过字符串进行导入。 import是常用得导入模块方法。
反射常用到得4个内置函数分别为:getattr、hasattr、setattr、delattr 获取成员、检查成员、设置成员、删除成员。
实例:
最初模块调用是这样得:
# commons.py
def login():
print(‘炫酷的登录页面‘)
def logout():
print(‘炫酷的退出页面‘)
def home():
print(‘炫酷的主页面‘)
# index.py
import commons
def run():
inp = input(‘请输入要访问的url:‘)
if inp == ‘login‘:
commons.login()
elif inp == ‘logout‘:
commons.logout()
elif inp == ‘home‘:
commons.home()
else:
print(‘404‘)
用了反射后是这样得:
#commons.py
def login():
print(‘炫酷的登录页面‘)
def logout():
print(‘炫酷的退出页面‘)
def home():
print(‘炫酷的主页面‘)
#index.py
import commons
def run():
inp = input(‘请输入要访问的url:‘)
# inp字符串类型 inp = "login"
# 利用字符串的形式去对象(模块)中操作(寻找/检查/删除/设置)成员
# delattr()
# setattr()
if hasattr(commons, inp):
func = getattr(commons,inp)
func()
else:
print(‘404‘)
if __name__ == ‘__main__‘:
run()
模块也可以通过字符串进行导入:
def run():
# account/login
inp = input(‘请输入要访问的url:‘)
# inp字符串类型 inp = "login"
# 利用字符串的形式去对象(模块)中操作(寻找/检查/删除/设置)成员
# delattr()
# setattr()
m, f = inp.split(‘/‘)
obj = __import__(m)
if hasattr(obj, f):
func = getattr(obj,f)
func()
else:
print(‘404‘)
if __name__ == ‘__main__‘:
run()




对于反射小节:
1、根据字符串的形式导入模块。 2、根据字符串的形式去对象(某个模块)中操作其成员。
标签:alt ons url print 方法 logo 内置函数 技术 函数
原文地址:http://www.cnblogs.com/luchuangao/p/6064553.html