Python装饰器理解与应用案例
装饰器是Python语言中的一种特殊语法,它允许我们在不修改已有代码的情况下,给函数增加新的功能。
理解装饰器的几个关键点:
- 装饰器本质上是一个接受一个函数作为参数,并返回一个新的函数的高阶函数。
- 被装饰的函数称为原函数,新返回的函数是装饰后的函数。
- 装饰器的主要作用包括:日志记录、性能测试、权限校验等。
应用案例:
日志记录:
def log(func):
def wrapper(*args, **kwargs):
print(f"Calling function {func.__name__} ...")
result = func(*args, **kwargs))
print(f"Function {func.__name__}} executed successfully.")
return result
return wrapper
现在可以给任何函数添加日志记录。
性能测试:
```python
import time
def timer(func):
def wrapper(args, **kwargs):
start_time = time.time()
result = func(args, **kwargs))
endtime = time.time()
print(f”Function {func._name}} executed in {end_time - start_time:.6f} seconds.”)
return result
return wrapper
@timer
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
print(factorial(5)) # 输出性能测试结果
```
现在可以给任何函数添加性能测试。
还没有评论,来说两句吧...