反射 hasattr 判断属性是否存在和getattr 赋值给f,f()


# 反射
class Webb:
def reg(self):
print("欢迎进入注册页面")
def login(self):
print("欢迎进入登录页面")
def home(self):
print("欢迎进入主页")
def about(self):
print("欢迎进入关于页面")
# 实例化
w=Webb()
# 判断是否存在
while True:
choose = input("请输入你进入的页面")
if hasattr(w, choose): # 判断输入的页面是否存在 如果存在 打印欢迎语
f = getattr(w, choose)
f()
else:
print("404")









 





#
反射 class Website: def register(self): print("欢迎进入注册页面") def login(self): print("欢迎进入登录界面") def home(self): print("欢迎进入主页") def about(self): print("关于我们") # 将类做实例化对象为website website=Website() while True: choose=input("请输入你要进入的页面") # if choose=="register": # page=Website() # page.register() # elif choose=="login": # page=Website() # page.login() # elif choose == "home": # page = Website() # page.home() # elif choose == "about": # page = Website() # page.about() # else: # print("404") # 使用反射 改良后 if hasattr(website,choose):# hasattr=have attribute 是否有属性 ; 有则返回 True f= getattr(website,choose)# getattr=get attribute 获得属性 ;将对象 website 的属性 choose 的值赋给变量 f f()# 调用变量 f 所引用的函数 else: print("404")

 

posted @ 2023-07-15 14:09  胖豆芽  阅读(9)  评论(0编辑  收藏  举报