Python 全栈开发:python函数装饰器
时间: 2023-07-06 19:17:22 浏览: 152
Python 函数装饰器是一种用于修改、包装或者扩展函数功能的语法结构。它允许在不改变原函数代码的情况下,对函数进行增强或修改。
装饰器本质上是一个函数,它接受被装饰的函数作为参数,并返回一个新函数。这个新函数通常会调用原函数,并在调用前后执行一些额外的操作,如打印日志、计时、权限校验等。
Python 函数装饰器的语法格式如下:
```
@decorator
def func():
pass
```
其中,decorator 是装饰器函数,func 是被装饰的函数。
Python 中的装饰器可以使用 @ 符号来调用,也可以使用函数调用的方式来使用。常见的装饰器有 @classmethod、@staticmethod、@property 等。
下面是一个简单的装饰器示例,它可以在函数调用前后打印出日志:
```python
def log(func):
def wrapper(*args, **kwargs):
print("Calling function:", func.__name__)
result = func(*args, **kwargs)
print("Function return:", result)
return result
return wrapper
@log
def add(x, y):
return x + y
add(2, 3)
```
输出结果如下:
```
Calling function: add
Function return: 5
```
可以看到,装饰器成功地增加了日志功能,而不需要修改原函数的代码。
阅读全文