1. # 你想在类中定义装饰器,并将其作用在其他函数或方法上。
    2. from functools import wraps
    3. class A:
    4. def decorator1(self, func):
    5. @wraps(func)
    6. def wrapper(*args, **kwargs):
    7. print('Decorator 1')
    8. return func(*args, **kwargs)
    9. return wrapper
    10. @classmethod
    11. def decorator2(cls, func):
    12. @wraps(func)
    13. def wrapper(*args, **kwargs):
    14. print('Decorator 2')
    15. return func(*args, **kwargs)
    16. return wrapper
    17. a = A()
    18. @a.decorator1
    19. def spam():
    20. pass
    21. @A.decorator2
    22. def grok():
    23. pass
    24. # 仔细观察可以发现一个是实例调用,一个是类调用。