python的函数装饰器
时间: 2024-06-16 08:08:35 浏览: 163
Python 装饰器
5星 · 资源好评率100%
函数装饰器是Python中一种用于修改、扩展或包装函数的特殊语法。它允许我们在不修改原始函数代码的情况下,通过在函数定义之前使用@符号和装饰器函数来对函数进行额外的操作。
装饰器函数本身接受一个函数作为参数,并返回一个新的函数。这个新的函数通常会在原始函数执行前后添加一些额外的功能或修改函数的行为。
下面是一个简单的例子来说明函数装饰器的使用:
```python
def decorator_func(original_func):
def wrapper_func():
print("在原始函数执行前的额外操作")
original_func()
print("在原始函数执行后的额外操作")
return wrapper_func
@decorator_func
def hello():
print("Hello, World!")
hello()
```
在上面的例子中,我们定义了一个装饰器函数`decorator_func`,它接受一个原始函数`original_func`作为参数,并返回一个新的函数`wrapper_func`。在`wrapper_func`中,我们首先打印了一条在原始函数执行前的额外操作的消息,然后调用了原始函数`original_func`,最后打印了一条在原始函数执行后的额外操作的消息。
通过在`hello`函数定义之前使用`@decorator_func`语法,我们将`hello`函数传递给了`decorator_func`装饰器函数,并将返回的新函数赋值给了`hello`。这样,当我们调用`hello`函数时,实际上是调用了被装饰后的`wrapper_func`函数。
运行上述代码,输出结果为:
```
在原始函数执行前的额外操作
Hello, World!
在原始函数执行后的额外操作
```
这个例子展示了一个简单的装饰器函数,它在原始函数执行前后添加了额外的操作。实际上,装饰器函数可以实现更复杂的功能,例如修改函数的参数、缓存函数的结果等。
阅读全文