python 写个装饰器
时间: 2023-12-01 16:43:26 浏览: 26
下面是一个简单的Python装饰器的例子,它可以在函数执行前后打印出函数名和参数:
```python
def my_decorator(func):
def wrapper(*args, **kwargs):
print("Calling function: {}".format(func.__name__))
print("Args: {}".format(args))
print("Kwargs: {}".format(kwargs))
result = func(*args, **kwargs)
print("Function {} finished".format(func.__name__))
return result
return wrapper
@my_decorator
def add(a, b):
return a + b
print(add(1, 2))
```
输出结果为:
```
Calling function: add
Args: (1, 2)
Kwargs: {}
Function add finished
3
```
在这个例子中,`my_decorator`是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数`wrapper`。`wrapper`函数在执行被装饰的函数之前和之后打印出一些信息,并返回被装饰函数的结果。`@my_decorator`语法是Python中装饰器的一种简写方式,它等价于`add = my_decorator(add)`。