Python学习笔记之装饰器
什么是装饰器?
装饰器是 Python 的一种高级语法,它允许在运行时动态扩展函数或类的功能。装饰器是对函数或类的修饰,可以在不修改这些对象的前提下,为它们添加新的功能或更改其原有的功能。
装饰器的使用场景?
- 日志记录
- 性能测试
- 接口鉴权
- 缓存
- 事务处理
装饰器的语法
def decorator(func):
def wrapper(*args, **kwargs):
# 添加功能代码
return func(*args, **kwargs)
return wrapper
# 使用装饰器
@decorator
def target_func():
pass
装饰器的示例
1. 记录函数运行时间的装饰器
import time
def time_it(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f'{func.__name__}函数运行时间:{end_time - start_time}秒')
return result
return wrapper
@time_it
def fib(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fib(n-1) + fib(n-2)
print(fib(35))
2. 权限验证装饰器
def auth(role):
def decorator(func):
def wrapper(*args, **kwargs):
if role == 'admin':
return func(*args, **kwargs)
else:
return '无权访问该接口'
return wrapper
return decorator
@auth(role='admin')
def get_user_info():
return '用户信息'
print(get_user_info())
上述两个示例分别展示了装饰器应用在记录函数运行时间和接口权限验证方面的场景,并演示了如何使用装饰器实现对函数的扩展和修饰。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python学习笔记之装饰器 - Python技术站