在Python中,装饰器是一种强大的语法特性,允许在不修改原始代码的情况下,动态地修改或增强函数的行为。本文将通过两个实际的例子,分别介绍了计时装饰器和缓存装饰器,并深入探讨了它们的实现原理和使用场景。
1. 计时装饰器
import timedef timing_decorator(func):def wrapper(*args, **kwargs):start_time = time.time()result = func(*args, **kwargs)end_time = time.time()elapsed_time = end_time - start_timeprint(f"{func.__name__} 执行时间: {elapsed_time} 秒")return resultreturn wrapper@timing_decorator
def my_function():# 模拟一个耗时的操作time.sleep(2)print("函数执行完成")my_function()
上述代码展示了一个简单的计时装饰器。通过使用@timing_decorator
语法糖,我们可以轻松地为需要计时的函数添加计时功能,而无需修改原函数的逻辑。在实际开发中,这种装饰器常用于性能优化和代码调优。
2. 缓存装饰器
import timedef memoize_decorator(func):cache = {}def wrapper(*args, **kwargs):key = (args, frozenset(