Python带参数的装饰器运行原理解析

 更新时间:2020年06月09日 11:47:16   作者:Johnthegreat  
这篇文章主要介绍了Python带参数的装饰器运行原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

关于装饰器的理解,特别像《盗梦空间》中的进入梦境和从梦境出来的过程,一层一层的深入梦境,然后又一层一层的返回,被带入梦境的是被装饰的函数,装饰器就是使人入梦的工具。

上代码:

from functools import wraps
def decorator_with_argument(argument=''):
  def outer(func):
    message = argument + func.__name__
    @wraps(func)
    def inner(*args, **kwargs):
      print(message)
      print('This is inner function running')
      return func(*args, **kwargs)
    return inner
  return outer

以上是装饰器的部分。

接下来,是带参数的装饰器:

@decorator_with_argument("Decorator's argument + ")
def pfunc(arg='default'):
  print('This is pfunc running')
  print(f'This " {arg} " is from pfunc argument')

最后,函数的运行:

pfunc("pfunc's argument")

函数本身也是带参数的。输出结果如下:

Decorator's argument + pfunc
This is inner function running
This is pfunc running
This " pfunc's argument " is from pfunc argument

Process finished with exit code 0

下图是关于梦境的具体图示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python 多继承中的一个诡异现象 既是 Father又是grandfather

    Python 多继承中的一个诡异现象 既是 Father又是grandfather

    我们知道,在面向对象编程里面,继承是一个很重要的概念。子类可以使用父类的方法和属性,接下来小编将用举例的方式为大家讲解Python 多继承中的一个诡异现象 其即是爸爸又是爷爷的奇葩现象,感兴趣的小伙伴可以看下面文章具体了解
    2021-09-09
  • Queue队列中join()与task_done()的关系及说明

    Queue队列中join()与task_done()的关系及说明

    这篇文章主要介绍了Queue队列中join()与task_done()的关系及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python OpenCV对本地视频文件进行分帧保存的实例

    Python OpenCV对本地视频文件进行分帧保存的实例

    今天小编就为大家分享一篇Python OpenCV对本地视频文件进行分帧保存的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python使用PIL模块生成随机验证码

    Python使用PIL模块生成随机验证码

    这篇文章主要为大家详细介绍了Python使用PIL模块生成随机验证码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Pandas DataFrame 取一行数据会得到Series的方法

    Pandas DataFrame 取一行数据会得到Series的方法

    今天小编就为大家分享一篇Pandas DataFrame 取一行数据会得到Series的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python使用Tesseract实现从图像中读取文本

    Python使用Tesseract实现从图像中读取文本

    Tesseract 是一个基于计算机的系统,用于光学字符识别 (OCR) 和其他图像到文本处理,本文将介绍如何使用 Python 中的 Tesseract 创建一个可以从图像中读取文本的程序,需要的可以参考下
    2023-11-11
  • python脚本之一键移动自定格式文件方法实例

    python脚本之一键移动自定格式文件方法实例

    这篇文章主要给大家介绍了关于python脚本之一键移动自定格式文件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 大数据分析用java还是Python

    大数据分析用java还是Python

    在本篇文章里小编给大家分享了关于java和Python哪个适合大数据分析的相关知识点文章,有需要的朋友们可以学习下。
    2020-07-07
  • Python完全新手教程

    Python完全新手教程

    Python完全新手教程...
    2007-02-02
  • Python实现一个数组除以一个数的例子

    Python实现一个数组除以一个数的例子

    今天小编就为大家分享一篇Python实现一个数组除以一个数的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07

最新评论