一、装饰器

  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()
实现

相关文章:

  • 2021-06-17
  • 2021-09-05
  • 2021-12-01
  • 2021-08-27
  • 2021-06-18
  • 2021-06-11
  • 2018-05-26
猜你喜欢
  • 2021-12-22
  • 2019-09-16
  • 2022-01-13
  • 2022-02-04
  • 2021-11-08
  • 2022-02-03
  • 2022-12-23
相关资源
相似解决方案