多个装饰器,执行顺序,以及自己编写响应以及请求

简介: 多个装饰器,执行顺序,以及自己编写响应以及请求

1.背景

背景:我为啥单独写一片这个文章呢?是因为遇到好多次了
我必须搞懂它!
文章分三部分
1.1不带参数的多个装饰器
1.2带参数的装饰器
1.3带参数的实例,直接拿来用

2不带参数的多个装饰器‘

# 编写装饰器,作为响应以及请求的校验

def request_wrapper(fun):
    print(f"request_wrapper  1")

    def wrapper(*args, **kwargs):
        print(f"request_wrapper  2")
        fun(*args, **kwargs)
        print(f"request_wrapper  3")

    return wrapper


def response_wrapper(fun):
    print(f"response_wrapper  1")

    def wrapper(*args, **kwargs):
        print(f"response_wrapper  2")
        fun(*args, **kwargs)
        print(f"response_wrapper  3")

    return wrapper

@request_wrapper
@response_wrapper
def fun():
    print(f"我是主程序")


if __name__ == '__main__':
    fun()

3.带参数的多个装饰器

# 编写装饰器,作为响应以及请求的校验

def request_wrapper(xxxxxxxxxxxx):
    print(f"request_wrapper  1")

    def wrapper(fun):
        print(f"request_wrapper  2")
        def inner(*args, **kwargs):
            print(f"request_wrapper  3")
            fun(*args, **kwargs)
            print(f"request_wrapper  4")
        return inner

    print(f"request_wrapper  5")
    return wrapper


def response_wrapper(xxxxxxxxxxxx):
    print(f"response_wrapper  1")

    def wrapper(fun):
        print(f"response_wrapper  2")
        def inner(*args, **kwargs):
            print(f"response_wrapper  3")
            fun(*args, **kwargs)
            print(f"response_wrapper  4")
        return inner

    print(f"response_wrapper  5")
    return wrapper

@request_wrapper(111111)
@response_wrapper(111111)
def fun():
    print(f"我是主程序")


if __name__ == '__main__':
    fun()


相关文章
|
Java 测试技术 API
【SpringMVC】参数传递与用户请求和响应(上)
【SpringMVC】参数传递与用户请求和响应(上)
81 0
|
1月前
|
前端开发 JavaScript API
异步请求中的错误处理可以放在哪个阶段?
【10月更文挑战第29天】异步请求中的错误处理可以根据不同的错误类型和需求,放在请求发起、请求过程、请求响应以及数据处理等多个阶段进行,通过全面而细致的错误处理,可以提高应用程序的稳定性和可靠性,为用户提供更好的体验。
多个装饰器,执行顺序,以及自己编写响应以及请求
多个装饰器,执行顺序,以及自己编写响应以及请求
|
3月前
|
存储 JSON Ubuntu
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?
|
6月前
|
JSON 前端开发 Java
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
210 6
|
存储 小程序 前端开发
小程序封装网络请求和拦截器
在开发小程序时,实际上我们通常需要封装网络请求和拦截器,以实现统一处理状态码和存储用户登录信息等功能。这样可以提高开发效率,减少代码重复,同时也可以提高代码的可维护性和可读性。
246 0
|
7月前
|
前端开发
AJAX发送请求方法封装和请求函数底层刨析以及axios二次封装
AJAX发送请求方法封装和请求函数底层刨析以及axios二次封装
|
XML JSON 前端开发
SpringMVC进阶:常用注解、参数传递和请求响应以及页面跳转
SpringMVC进阶:常用注解、参数传递和请求响应以及页面跳转
93 0
|
JSON 前端开发 Java
【SpringMVC】参数传递与用户请求和响应(下)
【SpringMVC】参数传递与用户请求和响应(下)
77 0