在Python中,装饰器是一种高阶函数,用于修改其他函数的行为。要声明装饰器,请按照以下步骤操作:
1. 定义一个装饰器函数,该函数接受一个函数作为参数,并返回一个新的函数。
2. 在要装饰的函数定义之前,使用`@decorator_name`语法将装饰器应用于目标函数。
下面是一个简单的装饰器示例:
```python
def my_decorator(func):
def wrapper(*args, kwargs):
print("Before calling the function")
result = func(*args, kwargs)
print("After calling the function")
return result
return wrapper
@my_decorator
def my_function():
print("Hello World!")
my_function()
输出结果:
```
Before calling the function
Hello World!
After calling the function
在这个例子中,`my_decorator`是一个装饰器函数,它接受一个函数`func`作为参数,并返回一个新的函数`wrapper`。`wrapper`函数在调用原函数`func`之前和之后打印了一些信息。在`my_function`函数定义之前加上`@my_decorator`等价于`my_function = my_decorator(my_function)`。
装饰器也可以用于类的方法,只需确保装饰器内的`wrapper`函数接受`self`作为其首参数,以便正确地绑定到类的实例。