Python装饰器实现认证逻辑
Python装饰器实现认证逻辑
装饰器介绍
Python装饰器是一种高级特性,用于在不修改原有代码结构钢的情况下,动态地修改或增强函数的行为。装饰器本质是一种能够接受函数作为输入,并返回一个新函数的高阶函数。
应用场景
- 日志记录
- 权限验证
- 缓存
- 事务管理
- 性能监控
示例
示例展示
以下使用认证逻辑,对装饰器进行说明
# 装饰器
def auth(func):
def wrapper(*args, **kwargs):
# 上传逻辑前进行认证
before_call_code()
result = func(*args, **kwargs)
after_call_code()
return result
return wrapper
@auth
def upload_func(arg1, arg2):
# 上传函数实现
pass
upload_func(arg1, arg2)
示例解析
- auth是一个装饰器函数,接受函数func作为入参,并返回一个内部函数wrapper,也就是在func外部嵌套了一个wrapper方法,在wrapper方法中可以进行一些func之外操作,之后调用func函数,并将结果返回;
- 使用@auth作为前缀,放到upload_func定义前,作为装饰器使用;
- 在调用update_fun(arg1, arg2)时,Python会自动将upload_fun函数作为入参传入auth中,然后返回wrapper函数替换掉upload_fun方法。(也即将update_fun(arg1, arg2)替换为wrappern(arg1, arg2)执行)
Leave a comment