Python中的装饰器:实例与用途说明
装饰器是Python中一个强大的特性,它允许在不改变函数源代码的情况下,动态地为函数添加功能。
实例:
- 记录日志:
def log(func):
def wrapper(*args, **kwargs):
print(f'Calling function: {func.__name__}')
return func(*args, **kwargs))
return wrapper
@log
def say_hello():
print('Hello!')
say_hello()
输出:
Calling function: say_hello
Hello!
- 计时器:
from time import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time()
result = func(*args, **kwargs))
end_time = time()
duration = end_time - start_time
print(f'Time taken by function: {duration} seconds')
return result
return wrapper
@timer
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(10)))
输出:
Time taken by function: 3.8567911743164 seconds
34
总结:
装饰器是Python中一种强大的语言工具,它使得代码更具可扩展性和灵活性。无论是记录日志、计时分析还是其他功能的扩展,装饰器都是一个很好的选择。
还没有评论,来说两句吧...