装饰器是 Python 中一个比较难以理解的知识点,其作用是让一个已经存在的函数拥有一个以前没有的功能。装饰器本质上还是一个函数,只是它的功能是为其他函数添加新功能。下面将提供一个装饰器的使用案例:
# 定义装饰器函数
def hello_bye(func):
# 定义包装函数
def wrapper():
# 在调用原始函数之前打印" Hello"
print("Hello")
# 调用原始函数
func()
# 在调用原始函数之后打印" Bye"
print("Bye")
# 返回包装函数
return wrapper
# 使用装饰器
@hello_bye
def say_name():
print("I am Bing")
# 调用被装饰的函数
say_name()
上述代码定义了一个装饰器函数hello_bye
,它接受一个函数作为参数,并返回一个新的函数作为输出。在装饰器函数内部,定义一个包装函数wrapper
,它可以在调用原始函数之前或之后执行一些操作。然后,使用@
符号和装饰器函数的名称,将装饰器附加到想要修改的函数上。在调用被装饰的函数时,实际上是在调用包装函数wrapper
,它会在调用原始函数之前打印"Hello",并在调用原始函数之后打印"Bye"。