装饰器说明
装饰器是一种设计模式,起到装饰的作用。就是在不修改函数代码的情况下,给函数增加一些功能
单个装饰器
def decorator(func):
def wrapper(*args, **kwargs):
print(f"原函数:{func.__name__} is running")
func_result = func(*args, **kwargs)
print('原函数执行结果:', func_result)
print('原函数已执行完毕')
return func_result
return wrapper
@decorator
def test(c, v, ff):
return c + v + ff
cc = test(22, 999, ff=33)
----------------------------------
原函数:test is running
原函数执行结果: 1054
原函数已执行完毕
同事使用多个装饰器
def decorator(func):
def wrapper(*args, **kwargs):
print(f"原函数:{func.__name__} is running")
func_result = func(*args, **kwargs)
print('原函数执行结果:', func_result)
print('原函数已执行完毕')
return func_result
return wrapper
def decorate2(func):
def wrapper(*args, **kwargs):
print('第二个装饰器')
result = func(*args, **kwargs)
print('第二个装饰器结束')
return result
return wrapper
# 原函数使用装饰器
@decorator
@decorate2
def test(c, v, ff):
return c + v + ff
cc = test(22, 999, ff=33)
---------------------------------
原函数:wrapper is running
第二个装饰器
第二个装饰器结束
原函数执行结果: 1054
原函数已执行完毕