account = {'authenticated':False, # 用户登录改为True
'username':'Alex', # 存的用户
'code':'123' #用户密码
}
def login():
if account['authenticated'] == False:
username = input("请输入账户》》")
code = input("请输入密码》》")
if username ==account['username'] and account['code'] == code:
account['authenticated'] = True
else:
print("请重新输入。。")
else:
print("已经登陆成功".center(20,'-'))
login()
account = {
"is_authenticated":False,# 用户登录了就把这个改成True
"username":"alex", # 假装这是DB里存的用户信息
"password":"abc123" # 假装这是DB里存的用户信息
}
def login(func):
if account["is_authenticated"] is False:
username = input("user:")
password = input("pasword:")
if username == account["username"] and password == account["password"]:
print("welcome login....")
account["is_authenticated"] = True
else:
print("wrong username or password!")
if account["is_authenticated"] is True: # 主要改了这
func() # 认证成功了就执行传入进来的函数
def home():
print("---首页----")
def america():
print("----欧美专区----")
def japan():
print("----日韩专区----")
def henan():
print("----河南专区----")
home()
login(america) # 需要验证就调用 login,把需要验证的功能 当做一个参数传给login
login(henan)
666
account = {
"is_authenticated":False,# 用户登录了就把这个改成True
"username":"alex", # 假装这是DB里存的用户信息
"password":"abc123" # 假装这是DB里存的用户信息
}
def login(func):
def inner(*args,**kwargs): # 再定义一层函数
if account["is_authenticated"] is False:
username = input("user:")
password = input("pasword:")
if username == account["username"] and password == account["password"]:
print("welcome login....")
account["is_authenticated"] = True
else:
print("wrong username or password!")
if account["is_authenticated"] is True:
func(*args,**kwargs)
return inner # 注意这里只返回inner的内存地址,不执行
def home():
print("---首页----")
@login
def america():
print("----欧美专区----")
def japan():
print("----日韩专区----")
@login
def henan(vip_level):
if vip_level < 3:
print("----河南专区普通会员----")
else:
print("欢迎来到尊贵河南口音RMB玩家私密社区".center(50,"-"))
print("再充值500就可以获取演员微信号,幸福大门即将开启".center(50," "))
# home()
# america = login(america) # 这次执行login返回的是inner的内存地址 .inner at 0x101762840>
# henan = login(henan) # .inner at 0x102562840>
america() # 相当于执行inner()
henan(5)
def home():
print("首页".center(20,'-'))
def america():
print('欧美专区'.center(20,'-'))
def japan():
print('日韩专区'.center(20,'-'))
def henan():
print('河南专区'.center(20,'-'))
home()
america()
japan()
henan()
装饰器 范例代码
最新推荐文章于 2022-05-13 14:13:27 发布
本文深入探讨Python装饰器的概念,通过多个实际示例展示如何使用装饰器来增强函数功能,包括日志记录、性能测试及权限验证等应用场景。
摘要由CSDN通过智能技术生成