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 wrapper
login_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_required
def edit_user():
print('用户名修改成功')
@login_required
def add_article():
print('添加文章成功')
#调用时,由于@语法糖的作用,被装饰函数自动将自己的函数名作为参数传给装饰器函数
edit_user()
add_article()
当前文章:Python装饰器与闭包
网页路径:https://www.cdcxhl.com/article38/gpissp.html
成都网站建设公司_创新互联,为您提供软件开发、小程序开发、网站策划、用户体验、品牌网站建设、搜索引擎优化
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联