day14 装饰器模拟验证附加功能

用户认证装饰器示例
本文展示了一个使用Python实现的用户认证系统示例,通过装饰器进行权限验证,确保只有登录用户才能访问特定功能,如浏览京东主页、查看购物车和个人主页。
 1 user_list=[
 2     {'name':'alex','passwd':'123'},
 3     {'name':'linhaifeng','passwd':'123'},
 4     {'name':'wupeiqi','passwd':'123'},
 5     {'name':'yuanhao','passwd':'123'},
 6 ]
 7 current_dic={'username':None,'login':False}
 8 
 9 
10 def auth_func(func):
11     def wrapper(*args,**kwargs):
12         if current_dic['username'] and current_dic['login']:
13             res = func(*args, **kwargs)
14             return res
15         username=input('用户名:').strip()
16         passwd=input('密码:').strip()
17         for user_dic in user_list:
18             if username == user_dic['name'] and passwd == user_dic['passwd']:
19                 current_dic['username']=username
20                 current_dic['login']=True
21                 res = func(*args, **kwargs)
22                 return res
23         else:
24             print('用户名或者密码错误')
25 
26     return wrapper
27 
28 @auth_func
29 def index():
30     print('欢迎来到京东主页')
31 
32 @auth_func
33 def home(name):
34     print('欢迎回家%s' %name)
35 
36 @auth_func
37 def shopping_car(name):
38     print('%s的购物车里有[%s,%s,%s]' %(name,'奶茶','妹妹','娃娃'))
39 
40 print('before-->',current_dic)
41 index()
42 print('after--->',current_dic)
43 shopping_car(current_dic["username"])
44 home('产品经理')
45 # shopping_car('产品经理')
1 before--> {'username': None, 'login': False}
2 用户名:alex
3 密码:123
4 欢迎来到京东主页
5 after---> {'username': 'alex', 'login': True}
6 欢迎回家产品经理
7 alex的购物车里有[奶茶,妹妹,娃娃]

 

转载于:https://www.cnblogs.com/shijieli/p/9705955.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值