无参装饰器
@decorate: f = decorate(f1) f = wrapper
有参装饰器
多层装饰器
装饰器带参数
装饰器带参数,3层
案例
import time
isLogin = False
def login():
username = input("请输入用户名:")
passward = input("请输入密码:")
if username == 'admin' and passward == '123':
return True
else:
return False
def decorate(func):
def wrapper(*args, **kwargs):
global isLogin
if isLogin:
func(*args, **kwargs)
else:
isLogin = login()
print(isLogin)
return wrapper
@decorate
def pay(money):
print("充值成功!{}".format(money))
pay(1000)
time.sleep(2)
pay(1000)