装饰器(Decorator)是 Python 中一种强大且灵活的功能,它允许你在不修改原始函数代码的情况下,通过在其周围添加额外功能或修改行为。装饰器通常用于包装函数或方法,以便在执行前后执行额外的操作。
在 Python 中,装饰器是使用 @decorator
语法实现的。一个装饰器是一个函数,它接受一个函数作为参数,并返回一个新的函数(通常是包装了原始函数的函数)。下面是一个简单的例子:
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
@my_decorator
def say_hello():
print("Hello!")
# 调用被装饰后的函数
say_hello()
在这个例子中,my_decorator
是一个装饰器,它接受一个函数 func
作为参数,并返回一个新的函数 wrapper
。wrapper
函数包装了原始的 say_hello
函数,在调用 say_hello
时会在前后打印额外的信息。
装饰器的使用通过在函数定义前使用 @decorator
语法来实现,这样就可以方便地应用装饰器到函数上。
装饰器有很多用途,比如性能分析、日志记录、权限检查等。Python 中也有一些内置的装饰器,例如 @staticmethod
和 @classmethod
,它们用于定义静态方法和类方法。
总的来说,装饰器是 Python 中一种强大的工具,可以使代码更加模块化、可重用,并且易于维护。