Python基础12-装饰器
2021-06-22 05:04
阅读:976
标签:基础 put 功能 方式 soft ret 装饰器 login code
装饰器:本质就是函数,功能是为其他函数添加附加功能 装饰器=高阶函数+函数嵌套+闭包
原则:1.不修改被修饰函数的源代码
2.不修改被修饰函数的调用方式
#用修饰器模拟验证功能 user_list=[ {‘user‘:‘alex‘,‘passwd‘:‘123‘}, {‘user‘:‘justin‘,‘passwd‘:‘123‘}, {‘user‘:‘balley‘,‘passwd‘:‘123‘} ] user_tag = {‘username‘:None,‘login‘:False} def login(func): def wrapper(*args,**kwargs): if user_tag[‘username‘] and user_tag[‘login‘]: res = func(*args,**kwargs) return res name = input(‘请输入用户名:‘).strip() passwd = input(‘请输入您的密码:‘).strip() for name_dic in user_list: if name_dic[‘user‘]==name and name_dic[‘passwd‘]==passwd: #记住登录状态,调用其他函数时不用再重新登录 user_tag[‘username‘] = name_dic[‘user‘] user_tag[‘login‘] = True res = func(*args, **kwargs) return res else: print(‘用户名或账号密码错误‘) return wrapper @login #相当于home = login(home) def home(name,x=‘!!!‘): print(‘亲爱的%s:欢迎回家%s‘ %(name,x)) @login def buycar(): print(‘这是你的购物车‘) @login def order(): print(‘这是你的订单‘) home(‘alex‘,x=‘!‘) buycar() 输出结果: 请输入用户名:alex 请输入您的密码:123 亲爱的alex:欢迎回家! 这是你的购物车
Python基础12-装饰器
标签:基础 put 功能 方式 soft ret 装饰器 login code
原文地址:https://www.cnblogs.com/josie930813/p/9680877.html
评论
亲,登录后才可以留言!