zoukankan      html  css  js  c++  java
  • python基础学习1-反射

    #!/usr/bin/env python
    # -*- coding:utf-8 -*- getattr(),hasattr(),delattr(),setattr()
    #反射:基于字符串的形式去对象(模块)中操作其成员
    
    import commons
    inp = input("请输入需要进入的页面方法")
    if hasattr(commons,inp):#检查commons中是否有对应名称的操作成员
      func=getattr(commons,inp) #反射 通过getattr在commons中查找名称为变量inp的操作成员
      func()#执行找到的成员
    else:
        print("不存在输入的模块")
    
    
    #动态导入模块和寻找模块中的方法
    ips=input("请输入需要进入的模块和页面方法")#以 commons/Login 形式输入模块和方法名
    m,f=ips.split('/')
    obj=  __import__(m)#动态导入模块
    if hasattr(obj,f):#验证当前导入模块中是否有指定方法名的方法
        func1=getattr(obj,f)
        func1()
    
    else:
        print("不存在输入页面或模块")
    
    #动态导入模块和寻找模块中的方法 导入模块在文件夹中情况
    ips=input("请输入需要进入的模块和页面方法")#以 commons/account 形式输入模块和方法名
    m,f=ips.split('/')
    obj=  __import__("lib."+m,fromlist=True)#动态导入模块
    if hasattr(obj,f):#验证当前导入模块中是否有指定方法名的方法
        func1=getattr(obj,f)
        func1()
    
    else:
        print("不存在输入页面或模块")
    

    commons.py

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    def Login():
        print("进入登陆界面")
    
    def Home():
        print("进入主界面")
    
    def LogOut():
        print("登陆出程序")
    

     lib文件夹下 account.py

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    def test():
        print("测试test方法")
    
  • 相关阅读:
    子网掩码的作用与IP网段的划分
    DHCP服务器
    Anaconda安装、更新第三方包
    time模块的使用
    TensorFlow安装
    机器学习-线性回归
    机器学习
    Pyhton-类(2)
    python-类(1)
    Python-函数
  • 原文地址:https://www.cnblogs.com/whzym111/p/5801944.html
Copyright © 2011-2022 走看看