首页 > 代码库 > Python开发【第一篇】Python基础之反射
Python开发【第一篇】Python基础之反射
反射
反射的作用:反射得作用是提高代码可读行。
__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、根据字符串的形式去对象(某个模块)中操作其成员。
Python开发【第一篇】Python基础之反射
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。