使用类来写装饰器

Posted 会吐泡泡的鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用类来写装饰器相关的知识,希望对你有一定的参考价值。

前两天发现了装饰器可以直接使用类来写,分享一下,需要用类里面的__call__方法,__call__方法就是可以把这个实例当成一个函数来调用,如果正常使用类里面的方法的话,实例方法要先实例化类,然后才能调用,静态方法、类方法则需要用类名或者实例化之后的对象来调用,而实例化之后的这个对象,是不能被调用的,__call__方法就是把这个实例变成一个可以调用的对象,也就是说实例化之后,这个对象就可以和一个普通函数一样被调用。

示例代码如下:

运行结果:

理解了上面的之后,就可以使用class来写一个装饰器了,计算程序的运行时间,当然思想和以前用函数写装饰器是一样的

运行结果:

 

以上是关于使用类来写装饰器的主要内容,如果未能解决你的问题,请参考以下文章

来写一个最基本的装饰器吧!

用类作为装饰器装饰函数!

Python 元类与类装饰器

python 装饰器:装饰器实例类装饰器(装饰函数)

python 装饰器:装饰器实例类装饰器(装饰函数)

python装饰器装饰原理探秘