
十一.Python_函数闭包模拟Session
发布日期:2021-05-07 00:20:19
浏览次数:22
分类:精选文章
本文共 2410 字,大约阅读时间需要 8 分钟。
Python_函数闭包模拟Session
# 19.函数闭包模拟Session#模拟数据库list_user=[{"name":"tom","password":"123"}, {"name": "cat", "password": "123"}, {"name": "ssh", "password": "123"}, {"name": "alex", "password": "123"}, {"name": "marry", "password": "123"}, {"name": "sam", "password": "123"}] #模拟数据库的用户#模拟Sessioncurren_login={"name":None,"status":False} #当前登录状态#判断用户登陆验证的装饰器def validate(con): #获取@validator()的参数 def _validate(func): #获取目标函数 def wrapper(): #获取目标函数的参数 if(curren_login["name"] and curren_login["status"]): #获取当前登录状态是否存在用户登录 res = func(curren_login["name"]) #用户登录调用目标函数 return res #返回目标函数 print("欢迎来到京东商城!") name=input("请输入用户名:") #用户没用登陆让用户输入用户名 password=input("请输入密码:") #用户没用登陆让用户输入用户密码 for i in list_user: #循环数据库的用户 if i["name"]==name: #判断该用户是否存在数据库中 if(password==i["password"]): #判断该用户的密码与数据库存储的密码是否一致 print("执行%s函数"%con) #输出要执行的函数 res=func(name) #用户登录成功调用目标函数 curren_login["name"]=name #设置登录状态的用户 curren_login["status"]=True #设置登录状态 return res #返回目标函数 else: #用户名或密码输入有误 print("您输入的用户名或密码有误!") #打印登陆失败的结果 return wrapper #将wrapper函数作为返回值 return _validate #将_validate函数作为返回值#跳转jd首页@validate("index") #相当于index=_validator(index)def index(name="1223"): print("%s!欢迎来到JD页面!"%name)#跳转jd个人主页@validate("home") #相当于home=_validator(home)def home(name="1223"): print("欢迎%s来到home!"%name)#跳转jd购物车@validate("shop") #相当于shop=_validator(shop)def shop(name="1223"): print("%s 购物车里有 零食 数码产品"%name)index() #调用index函数# home()# shop()
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月23日 19时06分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux 下如何进入 MySQL 命令行
2025-04-06
linux 下安装php扩展
2025-04-06
linux 下安装redis并设置开机自启动
2025-04-06
Linux 下安装Samba 文件共享服务器
2025-04-06
Linux 下查看java进程
2025-04-06
linux 下查看机器配置命令
2023-02-01
Linux 下格式化新磁盘、挂载新磁盘,并且实现开机自动启动
2023-02-01
linux 下监控进程流量情况命令 NetHogs
2023-02-01
Linux 下编写.sh文件运行JAR下的Class
2023-02-01
Linux 下获取 IP 和 MAC Adr 的方法
2023-02-01
Linux 下进行服务器间网络测速
2023-02-01
linux 下部署nodejs(两种方式)
2023-02-01
linux 下防火墙iptables
2023-02-01
Linux 不同方法查看进程消耗CPU IO 等
2023-02-01
Linux 两台服务器之间传输文件和文件夹
2023-02-01
linux 两块硬盘合并成一块
2023-02-01
Linux 中 chmod 777 是什么意思?
2023-02-01
Linux 中 Grep 命令的常见示例
2023-02-01
Linux 中如何将 top 命令输出捕获到文件?
2023-02-01
Linux 中如何避免 rm -rf /*
2023-02-01