Python装饰器函数:定义和使用
发布时间:2023-05-26 17:01:47
Python的装饰器函数是一种函数,可以用于修改或增强函数或类的行为。
装饰器函数的定义格式如下:
def decorator_function(original_function):
# some code here
return modified_function
其中,decorator_function是装饰器函数的名称,original_function是要被修改的函数的名称,modified_function是修改后的函数的名称。
装饰器函数可以用于修改函数的输入、输出,也可以用于记录函数的执行时间、调用次数等信息。
例如,下面的装饰器函数用于记录函数的执行时间:
import time
def timing_decorator(original_function):
def modified_function(*args, **kwargs):
start_time = time.time()
result = original_function(*args, **kwargs)
end_time = time.time()
print(f"Function {original_function.__name__} took {end_time - start_time:.2f} seconds to execute.")
return result
return modified_function
timing_decorator函数接受一个函数作为参数,并返回一个修改后的函数modified_function。modified_function函数在执行original_function函数前记录了当前时间start_time,在执行完original_function函数后记录了当前时间end_time,并打印了函数的执行时间。
下面是一个使用装饰器函数的例子:
@timing_decorator
def slow_function():
time.sleep(2)
slow_function()
在这个例子中,@timing_decorator表示对slow_function函数应用timing_decorator装饰器函数。执行slow_function()函数会自动调用timing_decorator(slow_function)函数,返回修改后的函数modified_function,并执行modified_function函数,即:
modified_function(*args, **kwargs) = timing_decorator(slow_function)(*args, **kwargs)
执行结果为:
Function slow_function took 2.00 seconds to execute.
从结果可以看出,slow_function函数执行了2秒钟,timing_decorator函数记录了函数的执行时间。这就是装饰器函数的作用。
使用装饰器函数可以使代码更加简洁可读,增强代码的可维护性和扩展性。建议大家多学习和使用Python的装饰器函数,以提高编程技能。
