# 你想在类中定义装饰器,并将其作用在其他函数或方法上。from functools import wrapsclass A:def decorator1(self, func):@wraps(func)def wrapper(*args, **kwargs):print('Decorator 1')return func(*args, **kwargs)return wrapper@classmethoddef decorator2(cls, func):@wraps(func)def wrapper(*args, **kwargs):print('Decorator 2')return func(*args, **kwargs)return wrappera = A()@a.decorator1def spam():pass@A.decorator2def grok():pass# 仔细观察可以发现一个是实例调用,一个是类调用。
