zoukankan      html  css  js  c++  java
  • python的反射

    目前大多数网站都是通过路由的方法来,处理url请求,如果有很多个url的话,不停的include或者用if判断匹配,似乎不太符合情理,因此这里讲讲python的反射机制,

    自动装在模块。请看下面的实例:

    在目录

    /myspace/mywork/python/reflect

    有两个文件

    index.py

    account.py

    account.py内容

    #encoding=utf-8
    
    def login(uname):
        print '恭喜你登录成功'+uname

    index.py内容

    #encoding=utf-8
    try:
        log_space = __import__('account') #导入模块名称
        func = getattr(log_space,'login') #导入方法
        func('hello world')
    except (ImportError,AttributeError),e:
        print '跳转到404页面'

    如果是要加载文件夹里面的内容

    #encoding=utf-8
    data = raw_input('接收输入地址')
    array = data.split('/')
    try:
        userspace = __import__('account.' + array[0]) #如果是account文件夹
        model = getattr(userspace,array[0]) #需要再导入一次
        func = getattr(model,array[1])
        func()
    
    except ImportError,e:
        print 1,e
        print '找不到模块,跳转到404页面'
    
    except AttributeError,e:
        print 2,e
        print '找不到属性,跳转到404页面'
    
    except Exception,e:
        print 3,e
        print '未知的错误'
    
    else:
        print '没有出错执行'
    
    finally:
        print '无论出错与否都执行'
  • 相关阅读:
    hashcode() equals()
    Java7/8 HashMap ConcurrentHashMap
    mysql联合索引
    spring 事务传播
    SpringMVC Controller 单例 多例
    Java进阶 线程安全
    JVM—JVM内存模型
    jvm中堆和栈的区别
    spring boot springmvc视图
    springcloud eureka.instance
  • 原文地址:https://www.cnblogs.com/gide/p/5579583.html
Copyright © 2011-2022 走看看