装饰器是Python中一种非常有用的高级功能,它可以用来修改或增强函数的行为。装饰器本质上是一个接受函数对象作为输入,然后返回一个新的函数对象的可调用对象(通常是函数或类)。
一个简单的装饰器可能看起来像这样:
python
def my_decorator(func):
def wrapper():
print("Before function call")
func()
print("After function call")
return wrapper
在这个例子中,my_decorator就是一个装饰器。它接受一个函数func作为输入,然后定义了一个新的函数wrapper。这个新的函数在调用原始函数之前和之后都打印了一些信息。最后,装饰器返回这个新的函数。
使用这个装饰器可以像这样:
python
@my_decorator
def say_hello():
print("Hello!")
现在,当你调用say_hello()时,你实际上是在调用wrapper()。因此,你会看到如下输出:
vbnet
Before function call
Hello!
After function call
这就是Python装饰器的基本概念。装饰器可以用来做很多事情,例如测量函数的执行时间,跟踪函数调用,在web应用中权限检查等等。