阐述什么是Python装饰器?
参考答案:
Python装饰器(Decorator)是一种高级Python功能,它允许用户修改或增强函数、方法或类的行为,而无需改变其源代码。装饰器本质上是一个接受函数作为参数并返回一个新函数的函数。
装饰器的基本语法是使用@
符号,后跟装饰器的名称。当Python解释器遇到@
符号时,它会将紧随其后的函数(被装饰的函数)作为第一个参数传递给装饰器函数,并返回装饰器函数的结果(通常是一个新函数)。
下面是一个简单的装饰器示例:
def my_decorator(func):
def wrapper():
print("Before function call")
func()
print("After function call")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
# 调用 say_hello 函数
say_hello()
输出:
Before function call
Hello!
After function call
在上面的示例中,my_decorator
是一个装饰器。它接受一个函数(func
)作为参数,并返回一个新的函数(wrapper
)。wrapper
函数在被装饰的函数(say_hello
)之前和之后分别打印一些内容。
使用@my_decorator
语法,我们将say_hello
函数装饰为my_decorator
。这意味着当我们调用say_hello
时,实际上我们是在调用my_decorator(say_hello)
返回的新函数(即wrapper
函数)。
装饰器可以用于许多用途,例如记录函数调用的时间、检查函数的参数、缓存函数结果等。它们提供了一种灵活且强大的方式来修改或增强函数的行为,而无需修改函数本身的代码。