Python中的装饰器是什么,举个例子
如题 Python中的装饰器是一种特殊的函数,它可以用来修改其他函数的行为,而不需要修改它们的源代码。装饰器函数接受一个函数作为参数,并返回一个新的函数,新的函数包装了原始函数,并提供了额外的功能或修改了原始函数的行为。以下是一个简单的装饰器示例,它可以用来计算一个函数的执行时间:
import time
def timer(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
@timer
def my_function():
time.sleep(2)
my_function()
在这个示例中,我们定义了一个名为timer的装饰器函数,它接受一个函数作为参数并返回一个新的函数wrapper 。在wrapper函数中,我们记录了函数执行的起始时间和结束时间,并计算了执行时间。然后,我们打印出函数名和执行时间,并返回原始函数的结果。
我们可以使用@timer语法来应用装饰器,它等价于my_function = timer(my_function) 。当我们调用my_function()时,实际上会执行wrapper函数,并在执行完原始函数后打印出执行时间。
页:
[1]