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