使用多个装饰器

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

相关文章

  • 学习笔记——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项目中的F对象,Q对象,聚合函数,排序

    2022-09-30 F对象:   在shell中是用于两个有关联的属性之间的查询。 使用实例: 查询书籍表中阅读量大于评论量的记录 前提,进入pycharm,进入虚拟环境,进入shell环境。 首先,要使用F对象,那么就需要导入F对象 from django.db.models import F 后进行查询 BookInfo1.objects.filter…

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

    2022-10-01 ALLOWED_HOSTS “ALLOWED_HOSTS”的含义:   它是指允许放在“ALLOWED_HOSTS”的主机进行访问后端 “ALLOWED_HOSTS”的说明:   它一般默认是“127.0.0.1”,如果添加上其他的主机的话,其他主机也可访问此项目的view,但是此时,需要手动将”127.0.0.1″加入到“ALLOWE…

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

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

    Python开发 2023年4月2日
    00
  • 闭包第一天

    2022-09-09 1、闭包的作用: 可以保存外部函数的变量 2、闭包的形成条件 (1)函数嵌套 (2)内部函数使用了外部函数的变量或者参数 (3)外部函数返回内部函数,这个使用了外部函数变量的内部函数称为闭包 3、典例 1 # 函数嵌套 2 def func_out(): 3 # 外部函数 4 num1 = 10 5 6 def func_inner(n…

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

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

    Python开发 2023年4月2日
    00
  • 学习笔记——Django项目中的结果集、分页

    2022-10-01 结果集的含义:   结果集就是在查询过程中,返回的一个列表的集合。 常见的结果集在一些函数中查询会返回,具体包括的函数有:   filter、exclude、order_by 结果集的两大特性:   (1)惰性       指的是查询时,如果不用则在mysql日志中不会有查询记录。反之,如果使用(一般是输出)的话,就会在记录日志中有记录…

    Python开发 2023年4月2日
    00
  • 创建一个Django项目总结

    2022-09-25  首先,要安装好虚拟环境,之后要切换到虚拟环境中,使用的命令 workon 创建好的虚拟环境的名称 之后,创建一个Django项目使用的命令: django-admin startproject 项目名称 进入到该项目的目录下,创建一个子应用,使用的命令: python manage.py startapp 要创建的子应用的名称 其中 …

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