python装饰器简单介绍
装饰器的作用:在函数执行前或执行后执行一段代码做一些通用处理
与直接在函数中写代码相比,优点在于可复用
调用形式为函数前@名字
@dec
def f(i):
装饰器运行逻辑:
系统看到装饰器,将不调用原函数
调用装饰器函数,将原函数作为参数传入
此函数返回一个函数,系统执行返回的函数(有意思的地方来了 返回的函数可以不包括原函数,也就是让调用原函数指令失效)
同时系统将把原函数的参数赋予给返回的函数
代码示例
原函数接受一个参数
装饰器接受原函数 返回一个函数
功能:返回的函数中输出接受到的参数 把其中一个参数再传给原函数执行
*a替代不定长普通参数 重点在* 可以是*b *c
a是一个元组 此示例中=(1, 2, 3)
**b替代不定长参数 重点在**
b是一个字典 此示例中={'a': 1, 'b': 2}
import time
def dec(f):
def wrap(*a,**b):
s=time.time()
for i in a:
print(i,end=' ')
for i in b:
print('{}:{}'.format(i,b[i]))
f(a[0])
print('spend:{}'.format(time.time()-s))
return wrap
@dec
def f(i):
print('函数参数{}'.format(i))
time.sleep(0.5)
f(1,2,3,a=1,b=2)

浙公网安备 33010602011771号