应用于类方法
装饰器应用于类方法与应用于普通函数类似,但需要考虑到类实例和方法的 self
参数。
下面是一个简单的Python例子:
在这个例子中,my_decorator
装饰了 MyClass
的 my_method
方法。
当 my_method
被调用时,实际上调用的是 wrapper
函数,它在调用原始方法前后添加了额外的打印语句。
应用于类本身
装饰器也可以应用于类定义,这通常用于在类创建实例之前修改类的行为。
下面是一个Python例子:
在这个例子中,my_decorator
接收一个类 cls
作为参数,并返回一个新的类 NewClass
,这个新类继承自原始类 cls
。
NewClass
重写了 __init__
方法,在实例化原始类之前和之后添加了额外的打印语句。
装饰器为 Python 提供了一种强大的方式来修改和增强类和方法的行为,而无需改变它们的原始定义。
这在很多场景下都非常有用,比如日志记录、性能监控、权限检查等。
有问题欢迎询问TG:https://t.me/owolai