python函数装饰器
时间: 2023-09-23 10:07:46 浏览: 43
Python函数装饰器是一种高级的语法特性,它允许我们使用一个函数来修改另一个函数的行为。装饰器可以被视为一个包装器,它将目标函数作为参数传递,并返回一个新函数,该新函数具有被装饰函数的功能,同时还具有装饰器函数所添加的新功能。
下面是一个简单的例子:
```python
def my_decorator(func):
def wrapper():
print("Before the function is called.")
func()
print("After the function is called.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
```
输出:
```
Before the function is called.
Hello!
After the function is called.
```
在这个例子中,`my_decorator` 函数是一个装饰器,它接收一个函数作为参数,并返回一个新函数 `wrapper`。`wrapper` 函数在调用被装饰函数 `func` 之前和之后打印一些信息。
我们使用 `@my_decorator` 语法将装饰器应用于 `say_hello` 函数。当我们调用 `say_hello()` 时,实际上调用的是 `wrapper` 函数,它在调用 `say_hello` 函数之前和之后打印出一些信息。
这是一个简单的例子,实际上装饰器可以用于更复杂的功能,例如缓存、日志记录和权限检查。