Python中装饰器的理解和应用示例
装饰器是Python中的一个强大特性,它允许我们在不改变已有代码结构的情况下,给函数添加新的功能。
理解:
- 装饰器本质上是一个返回新函数的高阶函数。
- 它接收一个函数(原函数)作为参数,并返回一个新的函数。
- 新的函数在执行时会调用原始函数,同时也可以做一些额外的操作。
应用示例:
- 计时器装饰器
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs))
end_time = time.time()
print(f'函数 {func.__name__} 执行时间: {end_time - start_time} 秒')
return result
return wrapper
@timer
def simple_func():
time.sleep(2)
simple_func()
- 日志装饰器
import logging
def log_decorator(func):
def wrapper(*args, **kwargs):
logging.info(f'函数 {func.__name__}} 开始执行...')
result = func(*args, **kwargs))
logging.info(f'函数 {func.__name__}} 执行完成,返回结果: {result}')
return result
return wrapper
@log_decorator
def complex_func(a, b):
time.sleep(3)
return a * b
complex_func(4, 5)
以上两个示例展示了如何使用装饰器来给函数添加新的功能。
还没有评论,来说两句吧...