利用Python怎么实现一个带参数的用户验证功能的装饰器

  介绍

今天就跟大家聊聊有关利用Python怎么实现一个带参数的用户验证功能的装饰器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

具体如下:

user_list =, (   {才能& # 39;名字# 39;:,& # 39;sb1& # 39;,, & # 39;密码# 39;:,& # 39;123 & # 39;},   {才能& # 39;名字# 39;:,& # 39;sb2& # 39;,, & # 39;密码# 39;:,& # 39;123 & # 39;},   {才能& # 39;名字# 39;:,& # 39;sb3& # 39;,, & # 39;密码# 39;:,& # 39;123 & # 39;},   {才能& # 39;名字# 39;:,& # 39;sb4& # 39;,, & # 39;密码# 39;:,& # 39;123 & # 39;}   ]   #,初始状态,用来保存登陆的用户,   client_dic =,{& # 39;用户名# 39;,,没有,,& # 39;登录# 39;:,假}   #,添加新功能   def 身份验证(auth_type=& # 39; filedb& # 39;):   def 才能auth_func(函数):   ,,,def 包装器(* args,, * * kwargs):   ,,,,,印刷(auth_type)   ,,,,,if  auth_type ==, & # 39; fildb& # 39;:   ,,,,,#,参数检查,判断是否有用户登录,如果有,不用验证,直接执行函数的功能   ,,,,,,,if  client_dic[& # 39;用户名# 39;],以及client_dic[& # 39;登录# 39;):   ,,,,,,,,,res =, func (* args,, * * kwargs)   ,,,,,,,,,return  res   ,,,,,,,#,输入用户名和密码   ,,,,,,,username =,输入(& # 39;用户名:& # 39;).strip ()   ,,,,,,,passwd =,输入(& # 39;passwd: & # 39;) .strip ()   ,,,,,,,#,对比列表,检查用户名和密码是否正确   ,,,,,,,for  user_dic 拷贝user_list:   ,,,,,,,,,if  username ==, user_dic[& # 39;名字# 39;],以及passwd ==, user_dic[& # 39;密码# 39;):   ,,,,,,,,,,,client_dic[& # 39;用户名# 39;],=,user_dic[& # 39;名字# 39;】   ,,,,,,,,,,,client_dic[& # 39;登录# 39;],=,真的   ,,,,,,,,,,,res =, func (* args,, * * kwargs)   ,,,,,,,,,,,return  res   ,,,,,,,其他的:   ,,,,,,,,,印刷(& # 39;用户名或者密码错误! & # 39;)   ,,,,,elif  auth_type ==, & # 39;通过# 39;:   ,,,,,,,印刷(& # 39;不知道什么验证方式& # 39;)   ,,,,,,,res =, func (* args,, * * kwargs)   ,,,,,,,return  res   ,,,,,其他的:   ,,,,,,,印刷(& # 39;一脸蒙蔽的验证方式& # 39;)   ,,,,,,,res =, func (* args,, * * kwargs)   ,,,,,,,return  res   ,,,return 包装   return  auth_func才能   @auth (auth_type=& # 39; filedb& # 39;)   def 指数():   打印才能(“欢迎来到主页“)   @auth (auth_type=& # 39;用户# 39;)   def 家居(名称):   打印才能(“欢迎回家:% s", %,名称)   @auth (auth_type=& # 39;通过# 39;)   def  shoppping_car ():   打印才能(& # 39;购物车里有[% s, % s % s] & # 39;, %,(& # 39;奶茶& # 39;,,& # 39;妹妹& # 39;,,& # 39;娃娃& # 39;))   打印(client_dic)   index ()   打印(client_dic)   回家(& # 39;根# 39;)

利用Python怎么实现一个带参数的用户验证功能的装饰器