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

浙公网安备 33010602011771号