zoukankan      html  css  js  c++  java
  • python基础——反射

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

    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: 
    ")
        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: 
    ")
        m,k=inp.split("/")
        obj = __import__(m) #字符串的形式导入模块
        if hasattr(obj,k):
            func=getattr(obj,k)
            func()
        else:
            print("404")
    
    if __name__ == '__main__':
        run()
  • 相关阅读:
    poj1703
    poj 2385
    poj 3169 差分约束
    poj3723 最大权森林
    POJ3255 次短路
    图论算法----最小生成树
    给linux操作系统安装中文环境
    Windows下使用python
    pku3668 Game of Lines
    pku3670 Eating Together
  • 原文地址:https://www.cnblogs.com/maxgongzuo/p/5843251.html
Copyright © 2011-2022 走看看