Python装饰器是Python语言中重要的概念之一,它是一种用于动态改变函数或类行为的结构。Python装饰器功能强大,使得我们可以轻松地增强现有函数功能,而不需要修改它的源代码。
Python装饰器的好处包括下面几个方面:
# 1. 增强函数功能 def logging_decorator(func): def wrapper(*args, **kwargs): print("Log before function execution...") func(*args, **kwargs) print("Log after function execution...") return wrapper @logging_decorator def add(x, y): print(x + y) add(1, 2) # Output: # Log before function execution... # 3 # Log after function execution...
这个例子中,装饰器函数“logging_decorator”动态地改变原有函数“add”的行为,增加了函数执行前后输出日志的功能,而不需要修改原有函数的代码。
# 2. 简化代码 def timer_decorator(func): from time import time def wrapper(*args, **kwargs): start_time = time() result = func(*args, **kwargs) end_time = time() print("Function execution time:", end_time - start_time) return result return wrapper @timer_decorator def sum_of_list(lst): result = 0 for num in lst: result += num return result print(sum_of_list([1, 2, 3, 4, 5])) # Output: # Function execution time: 4.76837158203125e-07 # 15
在这个例子中,装饰器函数“timer_decorator”动态地增加了计算函数执行时间的功能,“sum_of_list”函数的源代码并没有改变,但它却得到了改进。
总结来说,Python装饰器是一种优雅、简洁、灵活的编程方式,既可以增强现有函数的功能,也可以简化代码。作为Python开发人员,掌握装饰器技能是必不可少的。