Python练习-装饰器版-为什么我的用户总被锁定
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python练习-装饰器版-为什么我的用户总被锁定相关的知识,希望对你有一定的参考价值。
参考代码如下:
1.用户登录程序流程控制代码:
1 # 编辑者:闫龙 2 if __name__ == ‘__main__‘: 3 import UserLoginFuncation 4 LoclCount=[]; 5 while True: 6 UserName = input("用户名:>>") 7 if(UserLoginFuncation.CheckUserLock(UserName)): 8 print("用户",UserName,"已被锁定") 9 continue 10 PassWd = input("密 码:>>") 11 if(UserLoginFuncation.UserInfo(UserName,PassWd)): 12 print("欢迎",UserName,"登陆") 13 break 14 else: 15 LoclCount.append(UserName); 16 print("用户名或密码错误,您还有",3-LoclCount.count(UserName),"次尝试机会") 17 if(LoclCount.count(UserName) == 3): 18 UserLoginFuncation.LockUser(UserName) 19 print("对不起,尝试次数过多",UserName,"用户已被锁定")
2.用户登录程序调用函数(加入装饰器):
1 # 编辑者:闫龙 2 import UserLoginDeco 3 import os 4 @UserLoginDeco.Jude(2) 5 def CheckUserLock(UserName): 6 if(os.path.exists("LockUser")): 7 with open("LockUser","r",encoding="utf8") as ReadLock: 8 p = ReadLock.readline().split(",") 9 if(p.count(UserName) != 0): 10 return True 11 else: 12 return False 13 14 @UserLoginDeco.Jude(3) 15 def LockUser(UserName): 16 if(os.path.exists("LockUser")): 17 LockFile = open("LockUser", "a", encoding="utf8") 18 LockFile.write(UserName+",") 19 LockFile.close() 20 else: 21 LockFile = open("LockUser", "w", encoding="utf8") 22 LockFile.write(UserName+",") 23 LockFile.close() 24 25 @UserLoginDeco.Jude(1) 26 def UserInfo(UserName,PassWd): 27 with open("UserInfo",mode="r",encoding="utf8") as userinfo: 28 p = userinfo.readlines() 29 for i in p: 30 i= i.strip().split(":") 31 if(i[0] == UserName and i[1] == PassWd): 32 return True 33 else: 34 continue 35 return False
3.用户登录程序装饰器代码:
1 # 编辑者:闫龙 2 import time 3 def Jude(InputType): 4 def ViewUser(UserLoginFunc): 5 def PrintUser(*args): 6 if(InputType == 1): 7 while True: 8 print("您输入的用户名是",args[0],"密码是",args[1]) 9 choice = input("请问是否继续登陆(y/n)") 10 if (choice.lower() == "y"): 11 res = UserLoginFunc(args[0],args[1]) 12 return res 13 elif(choice.lower() == "n"): 14 break; 15 else: 16 print("您的选择有误") 17 continue 18 if(InputType == 2): 19 print("正在比对用户",args[0],"的信息......") 20 time.sleep(2) 21 res = UserLoginFunc(args[0]) 22 return res 23 if(InputType == 3): 24 print("正在锁定",args[0],"用户") 25 time.sleep(2) 26 res = UserLoginFunc(args[0]) 27 return res 28 return PrintUser 29 return ViewUser
4.用户登录文件(UserInfo):
1 egon:123 2 alex:321 3 long:666
以上是关于Python练习-装饰器版-为什么我的用户总被锁定的主要内容,如果未能解决你的问题,请参考以下文章