反射:利用字符串的形式去对象(模块)中操作(寻找|检查|设置|删除)成员

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: \n")
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: \n")
m,k=inp.split("/")
obj = __import__(m) #字符串的形式导入模块
if hasattr(obj,k):
func=getattr(obj,k)
func()
else:
print("404") if __name__ == '__main__':
run()

最新文章

  1. DBMS_NETWORK_ACL_ADMIN
  2. hdoj 1879 继续畅通工程
  3. Winform获取应用程序的当前路径的方法集合(转)
  4. keytool 生成 Android SSL 使用的 BKS
  5. iOS动态性:动态添加属性的方法——关联(e.g. 向Category添加属性)
  6. P1516 青蛙的约会
  7. koa-passport实现本地验证
  8. suse11 安装 python3.6 python3 安装步骤
  9. Gson学习文档
  10. js 原型链和继承(转)
  11. 源码安装 odoo12 -- 问题记录
  12. [development][dpdk][pktgen] 网卡收发包性能测试-详细数据
  13. Eclipse安装Markdown插件
  14. Centos7上卸载openJdk安装,安装自己的JDK1.8
  15. SSh on Ubuntu
  16. n转m进制标准写法(必须记忆)
  17. Winfrom 嵌入word、excel实现源码
  18. 关于docker线上部署时间问题
  19. 配置项目使用weblogic的JNDI数据源
  20. 2017北京国庆刷题Day2 morning

热门文章

  1. 【】Apache Ranger剖析:Hadoop生态圈的安全管家
  2. 自动化怎么判断anndroid.listview是否包含某个指定的元素或内容
  3. 认识MongoDB(二)
  4. [ vue ] xxxProject项目杂记
  5. 细谈 Java 匿名内部类 【分别 使用 接口 和 抽象类实现】
  6. vue中自定义属性
  7. 第10组 Beta冲刺 (3/5)
  8. vue 使用mock来模拟数据
  9. STM32寄存器深入分析
  10. 记一次ARM服务器(鲲鹏920)的PXE批量装机遇到的坑