python装饰器菜鸟教程,python装饰器--原来如此简单_1

  python装饰器菜鸟教程,python装饰器--原来如此简单

  Python decorator是一种用来扩展原函数的函数,目的是在不改变原函数名(或类名)的情况下,给函数增加新的函数。饰品本质上是一个闭包,闭包是饰品的核心。

  定义

  (推荐教程:python教程)

  Python decorators是一种用来扩展原函数的函数,目的是在不改变原函数名(或类名)的情况下,给函数增加新的函数。

  这个函数的特别之处在于,它的返回值也是一个函数,是一个嵌入了“原”函数的函数。

  详细注释

  装饰器实际上是一个闭包,它将一个函数作为参数,并返回一个备选函数。闭包是装饰器的核心。

  解释简单闭包的特征:

  函数返回的函数对象依赖于非函数执行时内部的变量值。此时,该函数返回的实际内容如下:

  1.函数对象;

  2.函数对象需要使用的外部变量和变量值;

  以上是结束语。闭包必须嵌套在函数中,并且必须返回调用外部变量的函数对象。

  示例:

  #编码=utf-8

  导入时间

  立即定义():

  “打印”当前时间是% S“% time . strftime”(% Y-% M-% d % H-% M-% S)

  res=现在

  Res()结果:

  现在,如果我们想在Now()函数中添加一些其他的函数,比如在调用函数前后自动打印一些日志,但是又不想修改now()的原始定义,那么我们的decorator就派上用场了。

  本质上,装饰器是返回函数的高阶函数。所以我们需要定义一个可以打印日志的装饰器。

  Python2.4以后,支持使用标识符@对函数应用装饰器,只需在函数定义前加上@和装饰器名称即可。

  代码:

  #编码=utf-8

  导入时间

  #定义装饰者

  定义日志(函数):

  定义包装(*args,**kw):

  “打印”调用函数是%s %func。__姓名_ _

  返回函数(*args,**kw)

  返回包装

  @日志

  立即定义():

  now=time . strftime( % Y-% M-% d % H-% M-% S )

  现在“打印”当前时间是%s

  现在()结果:

  以上就是python decorator的详细介绍细节。更多信息请关注热门IT软件开发工作室其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: