使用多个装饰器

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

相关文章

  • 装饰器的使用

    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项目中新增数据、修改数据

    2022-09-30 新增数据 方式一: 进入虚拟环境,进入shell工具环境中(“python manage.py shell”),插入数据。在插入数据之前,可以先将要插入的内容写在“views.py”中,,这样做的目的是先写在此处会有代码提示,较为方便。之后将内容放到shell工具中。 首先,先要导入某个表,使用的是ORM模式,因此导入的是一个子应用中的…

    Python开发 2023年4月2日
    00
  • 学习笔记——美多商城——1 美多商城项目准备

    2022-10-23 步骤: 一、创建工程仓库 (1)在“码云”上创建一个仓库,在本地盘符中创建一个文件夹,右击,使用git,将远程仓库的内容克隆到本地仓库中,点击“Git Bash Here”。将刚刚创建的远程仓库克隆,使用的命令是“git clone 刚刚远程仓库的地址(点击(克隆/下载)按钮会出现一个网址)”。之后,系统会弹出弹框,要求输入Gitee中…

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

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

    Python开发 2023年4月2日
    00
  • Redis与Python连接实例

    2022-09-22 1、 Redis与Python建立连接之前需要先安装“Redis”安装包: 在ubantu中,打开终端,输入命令: sudo pip install redis 此时,是安装Python2.0的版本。 一般来说,是将3.0和2.0的版本都安装,安装3.0的命令: sudo pip3 install redis 2、python与redi…

    2023年4月2日
    00
  • 类装饰器

    2022-09-18  类装饰器的定义:   使用一个类作为一个装饰器,在类里面对已有函数添加其他功能。 类装饰器使用的一个实例: 1 class MyDecorator(object): 2 def __init__(self,func): 3 self.__func = func 4 5 def __call__(self, *args, **kwarg…

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

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

    Python开发 2023年4月2日
    00
  • 在浏览器中Django项目的静态文件打不开的一个原因

    2022-09-27 问题描述:   编写Django代码时,设置了一个“static”文件夹,在里面放置了一张图片。在“setting”中设置了静态文件在服务器中的存储路径,But 浏览器运行时,显示    找不到,就很奇怪。 问题原因:   之后,在看了一眼代码,发现了一个问题,它是源于一个拼写的错误,如下   发现这个存储位置的拼写少了一个”s”。 其…

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