python学习-43 装饰器 -- 函数闭包2
2019-07-24 09:28:14来源:博客园 阅读 ()
函数闭包为函数加上认证功能
1.登陆账号
user_dic ={'username':None,'login':False} def auth_func(func): def wrapper(*args,**kwargs): if user_dic['username'] and user_dic['login']: res = func(*args,**kwargs) return res username = input('账号:').strip() passwd = input('密码:').strip() if username == 'abcd' and passwd == '123456': user_dic['username'] = username user_dic['login'] = True print('登陆成功!') res=func(*args,**kwargs) return res else: print('用户名或密码错误') return wrapper @auth_func def index(): print('欢迎光临本网站') @auth_func def home(name): print('欢迎%s回家' % name) index() home('小明')
运行结果:
账号:abcd 密码:123456 登陆成功! 欢迎小明回家 Process finished with exit code 0
2.检测已有账号登陆
user_list=[{'name':'abcd','passwd':'123456'}, {'name':'abd','passwd':'123'}, {'name':'acc','passwd':'123456'}, {'name':'asdfg','passwd':'12346'} ] user_dac ={'username':None,'login':False} # 获取刚开始登陆之前的状态 def auth_func(func): def wrapper(*args,**kwargs): if user_dac['username'] and user_dac['login']: # 获取刚开始登陆之前的状态,是否已登录 res = func(*args,**kwargs) return res username = input('账号:').strip() passwd = input('密码:').strip() for user_dic in user_list: if username == user_dic['name'] and passwd == user_dic['passwd']: user_dac['username'] = username user_dac['login'] = True print('登陆成功!') res=func(*args,**kwargs) return res else: print('用户名或密码错误') return wrapper @auth_func def index(): print('欢迎光临本网站') @auth_func def home(name): print('欢迎%s回家' % name) index() home('sb')
运行结果:
账号:abd 密码:123 登陆成功! 欢迎光临本网站 欢迎sb回家 Process finished with exit code 0
原文链接:https://www.cnblogs.com/liujinjing521/p/11218689.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash