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方法")

 

posted @ 2016-08-24 10:41  whzym111  阅读(238)  评论(0编辑  收藏  举报