'''
func就是init(),这是一个把函数当做参数,当定义一个装饰器穿参数时,
必须要在装饰器的内部将参数传递给执行的函数,否则会报错
'''
def login(func):
def wrapper(*n):
print("正在效验中", n)
time.sleep(2)
print('效验完成')
func(*n)
return wrapper
@login
def init(n,v):
print("--->", n,v)
init(5,4)
# 只有在调用的时候才会执行装饰器中的代码
# ----------------》带参数的装饰器的写法,以及关键字参数的装饰器的调用
def logins(a): # 负责接收装饰器的参数
def login(func): # 负责收函数
def wrapper(*n, **ff): # 负责接收函数的参数
print("正在效验中", a, n)
time.sleep(2)
print('效验完成')
func(*n, **ff)
return wrapper
return login
@logins(a=10)
def init(n, v, clas="3333"):
print("--->", n, v, clas)
init(5, 4, clas="1111")