python 手写装饰器

1. 什么是装饰器

在Python编程中,装饰器是一种用于修改函数或类属性的技术。它本质上是一个函数,用于包装另一个函数,以便在不修改原始函数代码的情况下添加新的行为或功能。

装饰器的使用可以提高代码的可重用性、可读性和简洁性。它们使开发人员能够将额外的逻辑和功能从核心业务逻辑中分离出来,从而使代码更加模块化。

2. 装饰器的语法

装饰器的语法非常简洁,使用“@”符号紧跟在函数或方法定义之前,下面是装饰器的基本语法:

@decorator

def function():

# 函数体

上述代码中,decorator是一个装饰器函数,它用于包装function函数。

3. 装饰器的应用场景

装饰器可以用于各种不同的场景,包括但不限于:

3.1. 计算函数执行时间

有时候我们需要统计某个函数的执行时间,这时候就可以使用装饰器来实现。以下是一个示例:

import time

def calculate_execution_time(func):

def wrapper(*args, **kwargs):

start_time = time.time()

result = func(*args, **kwargs)

end_time = time.time()

execution_time = end_time - start_time

print(f"函数 {func.__name__} 执行时间为 {execution_time} 秒")

return result

return wrapper

@calculate_execution_time

def my_function():

time.sleep(1)

my_function()

在上述代码中,使用了一个装饰器calculate_execution_time来计算my_function函数的执行时间。装饰器函数wrapper内部使用了time.time()函数来计算开始和结束时间,并打印出执行时间。

运行上述代码,输出结果为:

函数 my_function 执行时间为 1.0 秒

通过装饰器,我们可以在不修改原有函数代码的情况下,轻松地添加额外的功能。

后端开发标签