python 有参数的装饰器

淺唱寂寞╮ 提交于 2020-02-07 02:59:03

怎么样为装饰器加参数

import time 
current_user = {'user':None}


def auth(engine = "file")
    def deco(func):
        def wrapper(*args,**kwargs):
            if current_user['user']:
                #已经登录过
                    res = func(*args,**kwargs)
                    return res
            user = input("username>>>:").strip()
            pwd = input("password>>>:").strip()
            if engine == 'file':
    
                #基于文件的认证
                if user == “egon‘ and pwd == "123":
                    print('login successful')
                    current_user['user'] = user
                    res = func(*args,**kwargs)
                    return res
                else:
                    print('user or password error')
              elif engine == 'mysql':
                   print('基于MySQL的认证')
    
                      elif engine == 'mysql':
                print('基于MySQL的认证')
            elif engine == 'ldap':
                print('基于ldap的认证')
            else:
                print('无法识别认证来源')
        return wrapper
    return deco

@auth(engine = ”mysql“)

def index():
    print('welcome to index page')
    time.sleep(1)

index()

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!