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


     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的购物车里有[奶茶,妹妹,娃娃]
  • 相关阅读:
    mysql的增量备份与全备的脚本
    mysql5.7的密码
    mysql 修改root密码
    centos7上面安装MySQL
    centos7上开启路由转发
    python基础之3
    python基础之2
    深入浅出FPGA-2-让source insight 支持verilog HDL
    Verilog 1995 VS Verilog 2001
    环境搭建基础知识2(sublime text3中配置verilog语法高亮)
  • 原文地址:https://www.cnblogs.com/shijieli/p/9705955.html
Copyright © 2020-2023  润新知