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)执行)
Enjoy Reading This Article?
Here are some more articles you might like to read next: