在Python中,装饰器是一种非常强大的功能,它允许程序员在不修改原有函数定义的情况下,增加额外的功能。这种技术可以被视为设计模式中的装饰者模式的一种实现,它有助于我们遵循开闭原则(即软件实体应对扩展开放,对修改关闭),从而使得代码更加灵活、易于扩展和维护。
装饰器的基本理解
装饰器本质上是一个函数,它接受一个函数作为参数并返回一个新的函数。使用装饰器可以在不改变原函数代码的前提下,给函数增加新的功能。这听起来可能有些抽象,让我们通过一个简单的例子来理解:
python
Copy Code
def my_decorator(func):
def wrapper():
print("Something is happening before the function is called.")
func()
print("Something is happening after the function is called.")
return wrapper
def say_hello():
print("Hello!")
say_hello = my_decorator(say_hello)
say_hello()
在这个例子中,my_decorator是一个装饰器