什么是decorator,在Python中如何使用?
发布时间:2023-06-21 20:56:36
在Python中,decorator是一种特殊的函数,它可以接收一个函数作为参数并返回一个新的函数。使用decorator可以在不改变原函数定义的情况下,为函数添加一些额外的功能或特性。
Python中的decorator有很多应用场景,例如可以用来记录日志、缓存结果、对函数进行认证、授权和限流等等。
使用decorator的语法很简单,只需要在函数定义前添加@decorator_name即可。以下是一个简单的例子:
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()
在上面的代码中,我们定义了一个简单的decorator my_decorator,它接收一个函数作为参数,并返回一个新的函数wrapper。新函数wrapper在调用原函数之前和之后,都会打印一些内容。然后我们使用@my_decorator语法将say_hello函数传递给my_decorator进行装饰。
在最后调用say_hello函数时,实际上会调用my_decorator返回的新函数wrapper。这个新函数在调用原函数say_hello之前和之后输出一些内容。
因此,运行结果如下:
Before function call Hello After function call
从上面的例子可以看出,使用decorator可以很方便地为函数添加一些功能,而不需要修改函数定义。这种方式可以让代码更加简洁、可读、可维护。
