一、说明

本文对装饰器做了一个极其简单的解释图例,并用类定义一个装饰器;一旦一个程序AAA套上@XXX这样的前缀,如

@XXX

def AAA():

pass

意味着:

  • 1)AAA已经是XXX的参数。
  • 2)调用AAA自动调用了XXX(AAA)
  • 3)  XXX可以是系统的,也可以是自定义的。

二、装饰器通俗解释

我们将单独的函数比喻成一条路径,从A到B; 如图:

通过定义装饰器,将路径AB内嵌到一个更大程序EF中,使得原路径AB改变成,EABF。这样做的好处是:在调用AB段之前的EA段可以夹带“私货”,在调用AB之后的BF段也可以夹带“私货”。仿佛给程序AB“穿鞋”-“戴帽”进行了某种装饰。

三、自定义装饰器方法

class myDecorator(object):def __init__(self, f):print( "inside myDecorator.__init__()" )f()                    # Prove that function definition has completeddef __call__(self):print("inside myDecorator.__call__()")@myDecorator
def aFunction():print( "inside aFunction()" )print( "Finished decorating aFunction()" )aFunction()

结果:

inside myDecorator.__init__()
inside aFunction()
Finished decorating aFunction()
inside myDecorator.__call__()

python知识:如何自定义装饰器相关推荐

  1. python return用法_初学Python要了解什么 装饰器知识汇总有哪些

    初学Python要了解什么?装饰器知识汇总有哪些?在Python学习过程中,有多种方法对函数和类进行加工,相对于其它方式,装饰器语法简单,代码可读性高.因此,装饰器在Python项目中有广泛的应用,比 ...

  2. python 自定义装饰器 来验证函数参数

    # -*- coding: utf-8 -*- # by dl from inspect import signature # 用来获取函数的一些信息# 自定义参数验证装饰器 def typeasse ...

  3. python类装饰器详解-Python类中的装饰器在当前类中的声明与调用详解

    我的Python环境:3.7 在Python类里声明一个装饰器,并在这个类里调用这个装饰器. 代码如下: class Test(): xx = False def __init__(self): pa ...

  4. [转载] Python学习笔记——用装饰器decorator和Memoization记忆化提高效率,原理讲清楚了

    参考链接: 在Python中使用装饰器进行记忆 Python学习笔记--用装饰器decorator和Memoization记忆化提高效率 装饰器Memoization记忆化运用`functools`中 ...

  5. itext生成pdf paragraph 自动换行_reportlab高级制作多格式PDF和python的class和装饰器复习

    1 说明 1.1 reportlab高级制作多格式PDF:即包含文字.表格.柱状图. 1.2 复习python的class和装饰器的高级基础知识. 1.3 列表转换字符串.读取txt文件等python ...

  6. Python中的decorator装饰器使用方法

    装饰器的运用是Python编程中的一项高级技巧,这里由浅入深,整理了12步入门Python中的decorator装饰器使用方法,需要的朋友可以参考下 装饰器(decorator)是一种高级Python ...

  7. 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解

    第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一.    引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...

  8. python log函数_python装饰器的使用

    1. 装饰者模式 装饰者模式是常用的软件设计模式之一.通过此设计模式,我们能够在不修改任何底层代码情况下,给已有对象赋予新的职责.python中可以用装饰器简单地实现装饰者模式. 1.1 将函数作为参 ...

  9. python实现计时器(装饰器)

    1, Python时间装饰器_BurningSilence的博客-CSDN博客_python 时间装饰器 from functools import wraps import time# time装饰 ...

最新文章

  1. 新浪微博一键关注代码
  2. 计算机应用基础课程没有期末考试,《计算机应用基础》课程期末考试2009—2010学年第一学期.doc...
  3. 操作系统进程间通信 --- IPC
  4. Mybatis高级应用 多表关联查询
  5. python 进度条_6种酷炫Python运行进度条
  6. 编译人脸识别的时候出现问题
  7. pycharm安装后,找不到Python解释器怎么办
  8. 键盘视频鼠标(KVM)切换器基础知识
  9. python曲线和直线的交点_求直线与分段线性曲线的交点
  10. 欧姆龙cp1h指令讲解_欧姆龙cp1h常用指令学习(八)字符串处理指令
  11. python判断字符串包含中文_查询字符串中是否包含中文字符(Python实现)
  12. Python eval 函数使用报错 name 'false' is not defined 已解决
  13. PowerDNS Authoritative Server 3.2 RC3 发布
  14. 误码率matlab怎么计算,PSK理论误码率与实际误码率MATLAB仿真程序(最新整理)
  15. 机载激光雷达测量技术理论与方法读书笔记(3)机载激光雷达测量数据的滤波分类
  16. 二叉树遍历 递归/非递归/morris
  17. Python第三次(下)
  18. STM32 使用CubeMX HAL库快速生成USBVCP虚拟串口工程
  19. 网易免费企业邮箱的SMTP、POP服务地址和端口
  20. 信号与系统第三章复习

热门文章

  1. 这也太猛了!985刚毕业面试腾讯直接手撕面试官,HR当场给offer?
  2. Carson带你学Android:这是一份全面详细的WebView学习攻略
  3. Kettle(ETL利器)实战应用大全
  4. 关于四种定位方式的介绍
  5. 搭建自己的pypi镜像库
  6. Java内存区域与OutOfMemoryError
  7. 流媒体服务(一)流媒体服务器搭建 win10+ngnix+rtmp+ffmpg播放rtmp和HLS/m3u8
  8. Github是目前唯一的还有流量红利的写作平台
  9. png,jpg转换为ico的方法
  10. 接到电话面试邀请时要问哪些问题?