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

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()
View Code
执行顺序

  response_wrapper 1
  request_wrapper 1
  request_wrapper 2
  response_wrapper 2
  我是主程序
  response_wrapper 3
  request_wrapper 3    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.wtld.cn/a/72.html

如若内容造成侵权/违法违规/事实不符,请联系方塘网进行投诉反馈,一经查实,立即删除!

相关文章

2022杭电多校第八场1、7、5

1001 Theramore 观察以下两种情况:以0为例,上图就是说,只要有两个连续的0,我们就可以一直把它们往前移动直到移动到首位。同理只要有两个连续的1我们就可以把它们移动到尾部。 所以可以开一个栈,顺序将字符入栈,一旦遇到连续的0或者1,就把它们删去,在首尾打下标记。 co…

Bert bert-base-uncased 模型加载

1、下载模型相关文件到本地路径 https://huggingface.co/bert-base-uncased/tree/main2、修改模型加载,注释为修改前

A层省选4

场均一题放弃 A. 我 我切题了 发现图上有环可以不停的转,让空位到我们需要的地方去,而环的具体形态并不重要,我们只需要知道环的大小(\(size\))和环内元素个数(\(cnt\))即可 所以使用\(tarjan\)缩点,然后转化为一个\(DAG\)上的问题 发现环的大小等于元素个数时,我们必须先…

fa

\[ax+by\equiv X_i \]$$\texttt{--END--}$$我的博客: $\texttt{1Liu}$ 本文链接: https://www.cnblogs.com/OLiuO/p/16589553.html 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!