装饰器第1天

2022-09-11

装饰器

装饰器的定义:

  装饰器是一种特殊的闭包函数,该闭包函数中有且只有一个参数,且该参数是一个函数类型。

装饰器的作用:

  装饰器可以给已有函数添加新的功能。

装饰器的特点(区别与其他函数):

  (1)它不会改变原来函数调用的方式。

  (2)它不会改变原来函数的源代码。

  (3)可以给原来的函数添加新的功能。

与装饰器配合使用的是:

   装饰器语法糖。

装饰器语法糖的使用格式:

  @装饰器名称

装饰器语法糖的作用:

  类似于一种既定模式,设置后,表示原来函数有一个装饰器。

注意:在执行一个包含装饰器函数的Python代码,当内存加载该函数后,会先执行装饰器代码。

 

装饰器使用举例:

 1 def func_out(func):
 2     def inner():
 3         print("登陆成功")
 4         func()
 5     return inner
 6 
 7 @func_out
 8 def func():
 9     print("发表评论")
10 
11 func()

  说明:

    (1)第1-5行是声明了一个装饰器,它本质上是一个闭包。第3行表示要给原来函数增加的功能。第1行原来的函数作为一个参数传入。

    (2)在第7行中,是一个装饰器语法糖的声明。表示下面的函数要用到装饰器。

    (3)第8行指的是原来的函数。

    (4)第11行,调用原来的函数,有了装饰器后,执行装饰器内的代码。

  运行结果图:

  装饰器第1天

 

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

(0)
上一篇 2023年4月2日 下午5:00
下一篇 2023年4月2日 下午5: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-01 ALLOWED_HOSTS “ALLOWED_HOSTS”的含义:   它是指允许放在“ALLOWED_HOSTS”的主机进行访问后端 “ALLOWED_HOSTS”的说明:   它一般默认是“127.0.0.1”,如果添加上其他的主机的话,其他主机也可访问此项目的view,但是此时,需要手动将”127.0.0.1″加入到“ALLOWE…

    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项目的删除数据、查询数据(filter、get、exclude)

    2022-09-30 删除数据: 方式一: 打开pycharm,进入虚拟环境,进入shell环境(python manage.py shell)。 删除数据,接上面的笔记——“学习笔记——Django项目的新增数据、修改数据” 导入模块: from book.models import BookInfo1 查找到要删除的数据: book = BookInfo…

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

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

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

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