python装饰器简单例子,python的装饰器概念

  python装饰器简单例子,python的装饰器概念

  说到python decorator,通常会先提到函数式编程,但实际上使用python decorator和知道是函数式编程没有任何关系。

  例子

  defdecorator(func):

  defwrapper(*args,**kwargs):

  印刷(“我是一个室内装潢师”)

  returnfunc(*args,**kwargs)

  返回包装器

  @装饰者

  deftest():

  打印(“我正在测试”)

  test()的输出如下

  我是一名室内装潢师。

  我是测试。就这么简单。我完全可以理解我们聊天中使用的代码中的“”。在调用某个函数的时候,@你要调用的decorator函数。然后,您可以添加一些通用函数,而无需更改函数本身的代码。

  应用

  那么装修工能做什么呢?最简单的应用是计算函数的运行时间。

  进口时间

  defrun_time(func):

  defwrapper(*args,**kw):

  t=time.time()

  ans=func(*args,**kw)

  t=time.time()-t

  特勒恩斯

  返回包装器

  @run_time

  deftest():

  x=1

  foriinrange(10**6):

  x=1

  returnx

  test()的输出如下

  (100001,0.0855388450622559)当然,decorator的应用还不止这些,它还可以传递参数,其著名的用法就像web框架flask的路由配置。有兴趣可以看一下它的源代码,非常好看。

  所需基础

  为了彻底了解装修工,有两个基础知识需要巩固。一个是闭包函数,另一个是可变参数。

  补充

  让我们给上面的装饰器添加一个参数:

  进口时间

  defrun_time(text):

  defdecorator(func):

  defwrapper(*args,**kwargs):

  t=time.time()

  ans=func(*args,**kwargs)

  t=time.time()-t

  ifttext:

  回答,“太慢了”

  else:

  回答,“正常”

  返回包装器

  return装饰器

  @run_time(1)

  deftest():

  x=1

  foriinrange(10**6):

  x=1

  returnx

  测试()

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

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