从品牌网站建设到网络营销策划,从策略到执行的一站式服务
本篇内容主要讲解“Python怎么实现类装饰器及应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现类装饰器及应用”吧!
创新互联建站IDC提供业务:香港机房服务器托管,成都服务器租用,香港机房服务器托管,重庆服务器租用等四川省内主机托管与主机租用业务;数据中心含:双线机房,BGP机房,电信机房,移动机房,联通机房。
Python中的装饰器既可以是函数也可以是类。在前几节中,我们使用的是函数装饰器。现在,我们将学习如何定义类装饰器。
我们将定义充当装饰器的自定义类。当用类装饰/修饰函数时,该函数就成为该类的实例。让我们来一探究竟:
如上所示,我们创建了一个简单的类装饰器。任何类要成为装饰器,都需要实现__call__()方法。__call__()方法的作用与函数装饰器中的包装器函数相同。
现在让我们用这个类来装饰一个函数:
运行程序输出结果如下:
为了让类装饰器使用参数用*args和**kwargs,我们需要使用这些参数来实现__call__()方法,并将其传递给被修饰的函数。通用的表示方法如下:
上面的代码中,类装饰器的__call__()方法接受*args和**kwargs参数。在代码行中,call方法将它们传递给所装饰的函数:self.func(*args,**kwargs)。
现在我们用这个类装饰器来装饰一个函数:
类装饰装饰函数
运行程序所输出结果类似如下:
Hello Solo Cui
还记得在函数装饰器的wrapper函数中,我们可使用return关键字返回装饰过的函数。我们会在这里做同样的事情,但是在__call__方法里面。
返回结果的类装饰器
运行程序输出结果如下:
TRACY CUI
如上所示,我们是在__call__方法中将修饰过的函数返回:
return self.func(*args,**args)
到此,相信大家对“Python怎么实现类装饰器及应用”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图