装饰器的用法有很多,其中在类中定义的方法也可以作为装饰器在另一个类中被使用,我们举一个例子来看一下。
代码如下:
#定义一个装饰类
class DeracotorClass:
def deracotor1(self,func): # 因为该装饰方法是定义在类中所以这里需要加一个self
def inner(other_self):
print('开始装饰1')
func(other_self)
print('结束装饰1')
return inner
def deracotor2(func): # 使用func代替self,调用时需使用类名调用
def inner(self):
print('开始装饰2')
func(self)
print('结束装饰2')
return inner
@staticmethod
def static_deracotor(func): # 静态方法
def inner(self):
print('开始装饰3')
func(self)
print('结束装束3')
return inner
@classmethod
def class_deracotor(cls,func): #类方法带有cls参数
def inner(self):
print('开始装饰4')
func(self)
print('结束装饰4')
return inner
c = Deraco