装饰器是 Python 语言中的一种强大功能,它允许用户修改函数或类的行为,而不更改其源代码。本质上,装饰器是接受另一个函数作为参数并返回一个包装原始函数的新函数。这样,用户可以在不修改原始函数的情况下,添加一些额外的功能或逻辑。
装饰器的语法使用@
符号,将装饰器函数应用到目标函数上,下面是一个简单的装饰器示例:
# 定义一个装饰器函数
def my_decorator(func):
def wrapper():
print("在原函数被调用前。")
func()
print("在原函数被调用后。")
return wrapper
# 使用装饰器
@my_decorator
def say_hello():
print("你好。")
say_hello()
上述代码中,定义了一个装饰器函数my_decorator()
,它接受一个函数对象作为入参,它的功能是在调用原函数前后打印一些信息。在调用被my_decorator()
装饰后的say_hello()
函数时,其实是在调用my_decorator(say_hello)
。