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