python中的装饰器
- 装饰器作用动态的给函数或类添加功能
- 装饰器本质就是一个函数,如果自定义一个函数,进行调用时可使用@+函数名形式引用
- 可以调用函数、方法、类
- 装饰器使用场景:插入日志、性能测试、事务处理、缓存、权限校验
自定义装饰器示例
import time
def inxx(func):
# times = time.time()
print("hello world")
def wrapper():
t1 = time.time()
func()
print('时间:',t1)
return wrapper
def AA(self):
print('lalal')
#引用装饰器
@inxx
def BB():
print('hahah')
BB()
执行结果
hello world
hahah
时间: 1703251708.1247168
从例子结合执行结果,可以看出调用装饰器的执行过程
带参数的装饰器示例
import time
def inxx(name):
times = time.time()
print("hello world")
print(f'{name}执行时间:',times)
return inxx
def AA(self):
print('lalal')
@inxx(name='小李')
def BB():
print('hahah')
执行结果
hello world
小李执行时间: 1621234567.8901234
hahah