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

    36、python的反射:
              实例:伪造一个web框架的路由系统
              1、利用字符串的形式取对象(模块)中操作(寻找,删除,检查,设置)成员,getattr()和hasattr()的使用:
                   commons.py
    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    def login():
        print('登陆页面')
    def logout():
        print('退出页面')
    def home():
        print('主页面')
    index.py
    import commons
    def run():
        inp = input('请输入要访问的url:')
        if hasattr(commons,inp):
            func = getattr(commons,inp)
            func()
        else:
            print('404')
    if __name__ == '__main__':
        run()
    2、delatttr()和setattr()只是删除和设置加载到内存中的模块,而实际没有改变原模块中的内容.
    3、导入模块的反射:
       #1:__import__(str)的应用:obj = __import__(str) 导入的时候:obj.attribute
       #2:__import__('xx.oo.yy',fromlist=True)表示导入xx目录下的oo目录下的yy模块。
    def run():
        inp = input('请输入要访问的url:')
        m,f = inp.split('/')
        obj = __import__(m)
        if hasattr(obj,f):
            func = getattr(obj,f)
            func()
        else:
            print('404')
    if __name__ == '__main__':
        run()
  • 相关阅读:
    【转载】两军问题与Paxos算法 & 动画讲解Paxos算法
    hdu4611 Balls Rearrangement
    [置顶] github简单使用
    set与map容器
    [置顶] C++为什么是C++而不是++C
    HDU 4616 Game (搜索)、(树形dp)
    Just learn how to use the JNI
    HDU 4611 Balls Rearrangement (数学-思维逻辑题)
    冒泡排序改进
    Python基础
  • 原文地址:https://www.cnblogs.com/cfj271636063/p/5806791.html
Copyright © 2011-2022 走看看