# 行为型模式-责任链模式 from abc import ABCMeta, abstractmethod class IHandler(metaclass=ABCMeta): @abstractmethod def check_permissions(self, request): pass class AdminPermission(IHandler): def check_permissions(self, request): if request == "管理员": print("管理员权限验证成功") return True else: return False class UserPermission(IHandler): def check_permissions(self, request): if request == "普通用户": print("普通用户权限验证成功") return True else: return False class ZGPermission(IHandler): def check_permissions(self, request): if request == "主管": print("主管权限验证成功") return True else: return False class Login(): permission_list = [] def check_login(self, request): # 权限验证流程, 检查普通用户,主管、管理员 a = UserPermission() self.permission_list.append(a) b = ZGPermission() self.permission_list.append(b) c = AdminPermission() self.permission_list.append(c) for i, item in enumerate(self.permission_list): if item.check_permissions(request): return True return False if __name__ == "__main__": check = Login() if not check.check_login("管理员1"): print("登录失败") else: print("登录成功")