Python中的装饰器原理及其应用实例
装饰器是Python中一种强大的语言特性,主要用于修改、增强或包装函数。简单来说,就是一个在不改变原函数代码的情况下,为函数添加功能的工具。
以下是一个装饰器的应用实例:
# 定义一个装饰器,名为timeit
def timeit(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:.3f}秒')
return result
return wrapper
# 假设我们有一个计算阶乘的函数
@timeit
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
# 测试函数
print(factorial(5)) # 输出结果,包括执行时间
上述例子中,timeit
是一个装饰器,它接收一个函数作为参数,并返回一个新的包装过的函数。新函数在调用原函数的同时,还会记录并打印出执行的时间。
还没有评论,来说两句吧...