Python 装饰器(day11)
装饰器的固定格式
def timer(func):
def inner(*args,**kwargs):
#在函数前执行的代码
ret=func(*args,**kwargs)
#在函数前执行的代码
return ret
return inner
@timer #函数1=timer(函数1)
def 函数名1():
pass
@timer #函数2=timer(函数2)
def 函数名2():
pass
函数名1()
函数名2()
- 装饰器的主要功能:
- 在不改变函数调用方式的基础上在函数的前、后添加功能。
- 本质:一个闭包函数
- 带参的装饰器
flag=True
def outer(flag):
def timer(func):
def inner(*args,**kwargs):
if flag:
print('''执行函数之前要做的''')
re = func(*args,**kwargs)
if flag:
print('''执行函数之后要做的''')
return re
return inner
return timer
@outer(flag)
def func():
print(111)
func()

浙公网安备 33010602011771号