反射:利用字符串的形式去对象(模块)中操作(寻找|检查|设置|删除)成员
getattr(commons,"login") #在commons模块中找成员login hasattr(commons,"login") #判断commons模块中是否有login成员
setattr() #设置
delattr() #删除
自定义模块commons.py
def login(): print("登陆页面") def logout(): print("退出页面") def home(): print("主页面")
index1.py
输入login,logout,home得到相应页面
import commons def run(): inp = input("请输入要访问的url: ") if hasattr(commons,inp): func=getattr(commons,inp) func() #如果inp="login",此时func()执行的就是commons.login() else: print("404") if __name__ == '__main__': run()
index2.py
输入commons/login,commons/logout,commons/home得到相应页面
def run(): inp = input("请输入要访问的url: ") m,k=inp.split("/") obj = __import__(m) #字符串的形式导入模块 if hasattr(obj,k): func=getattr(obj,k) func() else: print("404") if __name__ == '__main__': run()