一、装饰器
1.1 闭包函数用法
# 需求:
# 执行一个函数前需要认证是否登录,如果登录则不需再登录.
# 只认证一次,后续操作无需认证
# 要求认证使用闭包函数用法
# 闭包函数 = 函数嵌套 + 命名空间作用域 + 函数对象
![]()
login_status = {
'user':None,
'status':None
}
def login(user:str,pwd:str):
if user == 'jmz' and pwd =='123':
return True
else:
return False
# 认证用户是否登录成功
def auth(func):
def wrapper(*args,**kwargs):
if login_status['user'] and login_status['status']:
return func(*args,**kwargs)
else:
uname = input('username>>').strip()
upwd = input('password>>').strip()
res =login(uname,upwd)
if res:
return func(*args, **kwargs)
else:
print('认证失败')
return wrapper
def index():
print('from index')
index = auth(index)
def cat():
print('form cat')
index()
cat()
实现