Python装饰器与闭包
python装饰器利用了函数闭包和函数可以当做参数进行传递的特性,函数闭包指在一个函数中嵌套一个函数,同时外层函数返回内层函数
user = { "is_login": False}def edit_user(): print('用户名修改成功')def add_article(): print('添加文章成功')def login_required(func): def wrapper(): if user['is_login'] == True: func() else: print('跳转到登录页面') return wrapperlogin_required(edit_user)()login_required(add_article)()
#利用语法糖可以简化调用
user = { "is_login": False}def login_required(func): def wrapper(): if user['is_login'] == True: func() else: print('跳转到登录页面') return wrapper@login_requireddef edit_user(): print('用户名修改成功')@login_requireddef add_article(): print('添加文章成功')#调用时,由于@语法糖的作用,被装饰函数自动将自己的函数名作为参数传给装饰器函数edit_user()add_article()
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。