您好,登錄后才能下訂單哦!
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()
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。