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 '无论出错与否都执行'
  • 相关阅读:
    return跳转 和 goto跳转
    continue跳转
    break跳转
    循环的嵌套,以for循环为例
    for“列表”型循环
    do while“直到”型循环
    while“当”型循环
    选择结构 switch
    Tomcat和Servlet简析
    并发事务和隔离级别
  • 原文地址:https://www.cnblogs.com/gide/p/5579583.html
Copyright © 2011-2022 走看看