乐闻世界logo
搜索文章和话题

What are Decorators in Python?

1 个月前提问
1 个月前修改
浏览次数11

1个答案

1

装饰器是Python中一种非常有用的高级编程功能,用来修改或扩展一个函数、方法或类的行为,而不需要直接修改其本身的代码结构。装饰器本质上是一个函数,它接受一个函数作为参数并返回一个新的函数。

使用装饰器的主要优势之一是增加代码的重用性和代码的可读性,同时还能够进行面向切面的编程,这可以帮助开发者在不修改原有业务逻辑的情况下,添加额外的功能,如日志记录、性能测试、事务处理等。

示例:

假设我们想为多个函数添加日志记录功能,记录其执行的时间。我们可以写一个装饰器来实现这一功能:

python
import time def time_logger(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}秒") return result return wrapper @time_logger def example_function(numbers): return sum(numbers) result = example_function([1, 2, 3, 4, 5])

在上面的代码中,time_logger 是一个装饰器,它接收一个函数 func 并定义了另一个函数 wrapper。在 wrapper 函数内部,我们记录了 func 执行前后的时间,从而计算出函数的运行时间。使用 @time_logger 语法,我们将这个装饰器应用到了 example_function 函数上,在调用 example_function 时,实际上是在调用由 time_logger 返回的 wrapper 函数。

通过利用装饰器,我们可以轻松地为多个函数添加相同的功能,而无需修改每个函数的内部实现,这大大提高了代码的维护性和可扩展性。

2024年8月9日 09:44 回复

你的答案