Python是一门富有特色的编程语言,拥有众多强大的特性和工具。本文将深入研究Python中的装饰器技术,这是一种高级而灵活的编程概念,用于增强函数或方法的功能。
装饰器是一种函数,用于修改其他函数的行为。在Python中,函数是一等公民,因此可以把函数作为参数传递给其他函数。这使得装饰器成为一种强大的工具,可用于在不修改原始函数代码的情况下扩展其功能。
Python中的装饰器使用 @decorator
语法来应用。通过将装饰器放在函数定义之前,可以在函数调用时自动应用装饰器。
@my_decorator
def my_function():
# 函数代码
让我们编写一个简单的装饰器来记录函数执行时间。这个装饰器将输出函数执行的时间,并返回函数的结果。
import time
def timing_decorator(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
@timing_decorator
def example_function():
# 一些需要计时的操作
time.sleep(2)
print("函数执行完成")
example_function()
装饰器可以链式组合,多个装饰器可以依次应用于同一个函数。
@decorator1
@decorator2
@decorator3
def my_function():
# 函数代码