1. 程式人生 > 其它 >11.4裝飾器模板與多層裝飾器

11.4裝飾器模板與多層裝飾器

""""""
"""1.模板"""
def outter(func):
def inner(*args,**kwargs):
print('執行被裝飾函式之前 你可以做的操作')
res = func(*args, **kwargs)
print('執行被裝飾函式之後 你可以做的操作')
return res

return inner
"""
認證裝飾器
執行函式index之前必須先輸入使用者名稱和密碼 正確之後才能執行index
否則提示使用者輸入錯誤 結束程式
"""
import time
user_dic = {'is_login':None}

def login_auth(func):

def inner(*args,**kwargs):
if user_dic['is_login']:
res = func(*args,**kwargs)
return res
else:
username = input("please_your_name>>>:").strip()
password = input('please input your password>>>:').strip()
if username == 'jason' and password == '123':
user_dic['is_login'] = True
res = func(*args,**kwargs)
return res
else:
print('username or password error')


return inner



@login_auth
def index(name):
time.sleep(1)
print('%s is dsb' % name)
return 666


@login_auth
def home():
time.sleep(1)
print('home')
return 999


# index('egon')
print(index)
# home()
print(home)
"""2.多層"""