使用多个装饰器

2022-09-18

多个装饰器使用的实例:

 1 # 定义一个装饰器
 2 def make_p(func):
 3     print("执行装饰器make_p")
 4 
 5     def inner():
 6         # 对已有函数增加新的功能
 7         result = "<p>" + func() + "</p>"
 8         # 和已有函数保持一致,如果已有函数有返回值,则这里也加上返回值;如果已有函数有参数,那么这里也加上参数。
 9         return result
10 
11     return inner
12 
13 # 定义第二个装饰器
14 def make_div(func):
15     print("执行装饰器make_div")
16     
17     def inner():
18         # 对已有函数增加新的功能
19         result = "<div>" + func() + "</div>"
20         # 和已有函数保持一致,如果已有函数有返回值,则这里也加上返回值;如果已有函数有参数,那么这里也加上参数。
21         return result
22 
23     return inner
24 
25 # 设置装饰器语法糖
26 @make_div
27 @make_p
28 # 原来的函数
29 def content():
30     return "人生苦短,我用python!"
31 
32 if __name__ == '__main__':
33     result = content()
34     print(result)

运行的结果如下:

使用多个装饰器

 

   由结果图可知,多个装饰器同时使用,会先执行内部函数,离原来函数距离最近的装饰器,之后,再执行外层的装饰器。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用多个装饰器 - Python技术站

(0)
上一篇 2023年4月2日 下午4:57
下一篇 2023年4月2日 下午4:58

相关文章

  • 装饰器第1天

    2022-09-11 装饰器 装饰器的定义:   装饰器是一种特殊的闭包函数,该闭包函数中有且只有一个参数,且该参数是一个函数类型。 装饰器的作用:   装饰器可以给已有函数添加新的功能。 装饰器的特点(区别与其他函数):   (1)它不会改变原来函数调用的方式。   (2)它不会改变原来函数的源代码。   (3)可以给原来的函数添加新的功能。 与装饰器配合…

    2023年4月2日
    00
  • 学习笔记——Django项目中的过滤器,模板继承

    2022-10-08 过滤器 过滤器的含义:   过滤器即筛选出我们设定需要的,过滤掉我们不需要的数据。 过滤器使用的场景:   例如:在子应用的“views.py”中的一个类中的函数设置了一个请求在浏览器页面显示“组织内容”,例如:在“组织内容”中设置了一个“birthday:datatime.now()”。在“templates”文件夹中的“index.…

    Python开发 2023年4月2日
    00
  • 装饰器的使用

    2022-09-17 装饰器的使用实例——获得计时函数所用时间: 1 import time 2 # 定义装饰器函数 3 def decorator(fun): 4 def inner(): 5 # 获得开始时间 6 start = time.time() 7 # 执行计时函数 8 fun() 9 # 执行计时函数之后所用的时间 10 end = time.…

    Python开发 2023年4月2日
    00
  • 学习笔记——Django项目中请求与响应(json数据)

    2022-10-04 测试json数据与Django项目与pycharm连接,在“postman”软件中。“postman”是一个接口测试软件。下载方式问度娘。 (1)在“postman”中设置“json”连接请求      设置的顺序:设置与pycharm中Django项目建立连接的“URL”路由,之后在左边选择“POST”,后点击“Body”,点击“ra…

    2023年4月2日
    00
  • 学习笔记——Django项目中的请求

    2022-10-03 url中的位置参数  位置参数存放的位置   是子应用中的自定义的“urls.py”文件中的路由中。 位置参数的设置:   如果位置参数很多,那么在自定义中的路由文件中可以使用正则表达式。位置参数就是在浏览器搜索中对应的关键词时,能够跳转到相应的界面。界面内容的设置是在子应用的“views.py”页面中。 子应用中的“urls.py”文…

    Python开发 2023年4月2日
    00
  • 学习笔记——Django项目中的cookie

    2022-10-05 得到cookie信息的实例联系: 在子应用中的“views.py”文件: from django.http import HttpResponse def get_cookie(request): cookies = request.COOKIES username = cookies.get(‘username’) return Ht…

    Python开发 2023年4月2日
    00
  • Django项目中表的查询的操作

    2022-09-29 shell操作:   我在使用中是pycharm与数据库建立连接的一个工具。 使用的环境:   在此处是用在了虚拟环境中。 使用场景:   一般是在创建的表中插入数据后,进行查看,可以代替在“视图”中——“创建一个函数用于请求指定表中的内容,在浏览器中返回”。 在插入表的过程中,有两个新得知的内容:   第一个是,插入语句中,“inse…

    Python开发 2023年4月2日
    00
  • Django项目中的数据库引擎的修改注意点以及级联删除的设置

    2022-09-29 问题描述: 在“setting.py”的配置文件中修改数据库引擎中,将系统默认的”sqlite3″后缀改为了“sql”。出现问题。 原因分析:    问题查看:  修改后:    —————————————— 上述问题修改后,在“setting”中设置数据库的其他内容(主机、端口、…

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部