在Python中,装饰器是一种特殊的函数,它可以用来修改其他函数的行为。装饰器通过接收一个函数作为参数,然后返回一个新的函数,这个新函数通常会包含原始函数的功能,并在此基础上添加或修改一些行为。
要实现功能扩展,你可以使用装饰器来包装原始函数,然后在新的函数中调用原始函数,并在适当的时机添加额外的功能。下面是一个简单的示例:
def my_decorator(func): def wrapper(): print("Something is happening before the function is called.") func() print("Something is happening after the function is called.") return wrapper @my_decorator def say_hello(): print("Hello!") say_hello()
在这个例子中,我们定义了一个名为my_decorator
的装饰器。这个装饰器接收一个函数func
作为参数,然后定义了一个名为wrapper
的新函数。在wrapper
函数中,我们首先打印一条消息,然后调用原始函数func
,最后再打印一条消息。最后,装饰器返回wrapper
函数。
我们使用@my_decorator
语法将装饰器应用于名为say_hello
的函数。这实际上是将say_hello
函数作为参数传递给my_decorator
,并将返回的wrapper
函数赋值给say_hello
。因此,当我们调用say_hello
时,实际上是在调用wrapper
函数,从而实现了功能扩展。
输出结果如下:
Something is happening before the function is called. Hello! Something is happening after the function is called.
这个简单的示例展示了如何使用装饰器来实现功能扩展。你可以根据需要修改wrapper
函数,以添加更多的功能或修改原始函数的行为。