import time
islogin = False # 默認是沒有登錄的
# 定義一個登錄函數
def login():
username = input('輸入用戶名:')
password = input('輸入密碼:')
if username == 'admin' and password == '123456':
return True
else:
return False
# 定義一個裝飾器 進行付款驗證
def login_required(func):
def wrapper(*args, **kwargs):
global islogin
print('--------付款--------')
# 驗證用戶是否登錄
if islogin:
func(*args, **kwargs)
else:
# 跳轉到登錄頁面
print('用戶沒有登錄,不能付款!')
islogin = login()
print('result: ', islogin)
return wrapper
@login_required
def pay(money):
print('正在進行付款,付款金額是:{}'.format(money))
print('付款中........')
time.sleep(2)
print('付款完成!')
# 調用
pay(10000)
pay(8000)
此外,若裝飾器含有參數,則需要三層纔可以完成