码迷,mamicode.com
首页 > 编程语言 > 详细

python的有参装饰器

时间:2020-05-27 20:43:32      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:--   装饰器   图片   bsp   type   lda   str   gif   mysq   

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(‘基于文件的验证‘)
# 从文件中取账号密码进行验证
if name == ‘engo‘ and pwd == ‘123‘:
print(‘login successful‘)
res = func(*args, **kwargs)
return res
else:
print(‘user or password error‘)
elif db_type == ‘mysql‘:
print(‘基于mysql的验证‘)
elif db_type == ‘ldap‘:
print(‘基于ldap的验证‘)
else:
print(‘不支持改db_type‘)
return wrapper

return deco

# deco = auth(db_type=‘file‘)


@auth(db_type=‘file‘) # 碰到函数+(),先把@放一边,首先执行函数调用,然后结果是@函数返回值(@deco)
# @deco会把index作为参数传入去调用函数d--eco(index)
def index(x, y):
print(‘index->>%s:%s‘ %(x, y))

技术图片

 技术图片

 

 



python的有参装饰器

标签:--   装饰器   图片   bsp   type   lda   str   gif   mysq   

原文地址:https://www.cnblogs.com/kingchen/p/12976109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!