35.Python:有参装饰器


def auth(db_type):
def deco(func):
def wrapper(*args, **kwargs):
name = input("your name: ").strip()
pwd = input("your password: ").strip()
if db_type == 'file':
print('from file')
if name == 'SEPIA' and pwd == '123':
print('login successful')
res = func(*args, **kwargs)
return res
else:
print('user or password error')
elif db_type == 'mysql':
print('from mysql')
if name == 'SEPIA' and pwd == '123':
print('login successful')
res = func(*args, **kwargs)
return res
else:
print('user or password error')
elif db_type == 'ldap':
print('from ldap')
if name == 'SEPIA' and pwd == '123':
print('login successful')
res = func(*args, **kwargs)
return res
else:
print('user or password error')
else:
print('not supported db_type: ', db_type)

return wrapper
return deco


@auth(db_type='file')
def index(x, y):
print('index==>%s %s' % (x, y))


@auth(db_type='mysql')
def home(name):
print('name==>%s ' % name)


@auth(db_type='ldap')
def transfer(name):
print('transfer==>%s ' % name)


index(1, 2)
home('sa')
transfer('kk')
posted @ 2021-06-25 14:25  SEPIA  阅读(42)  评论(0)    收藏  举报