zoukankan      html  css  js  c++  java
  • python

    1.利用反射导入模块

    obj = __import__("commons")  #同级目录中的commons.py
    obj.login()  #执行commons模块中的login函数

    导入多级目录里的模块:

    例如:

    在admin.py文件中导入lib目录下的commons模块

    obj = __import__("lib.commons",fromlist=True)

    2.

    commons.py文件内容:

    def login():
        print('登录页面')

    index.py文件内容:

    import commons
    
    def run():
        inp = input('输入URL:')
        #利用字符串的形式去对象(模块)中操作(寻找/检查)成员,反射
        # delattr()
        # setattr()
        if hasattr(commons,inp):
            func = getattr(commons,inp)
            func()
        else:
            print('404')
    
    if __name__ == '__main__':
        run()

    结果:

    3.反射:伪造web框架的路由系统

    commons.py文件内容

    def login():
        print('登录页面')

    index.py文件内容

    def run():
        inp = input('请输入url:')
        m,f = inp.split('/')   #m相当于模块commons名称,f相当于输入commons模块中函数的名称,例如:login()
        obj = __import__(m)
        if hasattr(obj,f):
            func = getattr(obj,f)
            func()
        else:
            print('404')
    if __name__ == '__main__':
        run()

    运行结果:

  • 相关阅读:
    java方法名的重载
    数据库ifnull方法
    java类的方法
    java属性的默认值
    sublime使用攻略
    1046 Shortest Distance
    1047 Student List for Course
    1048 Find Coins
    1049 Counting Ones
    1050 String Subtraction
  • 原文地址:https://www.cnblogs.com/pangguoping/p/5575470.html
Copyright © 2011-2022 走看看