python裝飾器利用了函數(shù)閉包和函數(shù)可以當(dāng)做參數(shù)進(jìn)行傳遞的特性,函數(shù)閉包指在一個函數(shù)中嵌套一個函數(shù),同時外層函數(shù)返回內(nèi)層函數(shù)
創(chuàng)新互聯(lián)是一家專業(yè)提供漾濞企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都網(wǎng)站制作、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為漾濞眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進(jìn)行中。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('跳轉(zhuǎn)到登錄頁面')
return wrapper
login_required(edit_user)()
login_required(add_article)()
#利用語法糖可以簡化調(diào)用
user = {
"is_login": False
}
def login_required(func):
def wrapper():
if user['is_login'] == True:
func()
else:
print('跳轉(zhuǎn)到登錄頁面')
return wrapper
@login_required
def edit_user():
print('用戶名修改成功')
@login_required
def add_article():
print('添加文章成功')
#調(diào)用時,由于@語法糖的作用,被裝飾函數(shù)自動將自己的函數(shù)名作為參數(shù)傳給裝飾器函數(shù)
edit_user()
add_article()
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。