装饰器是 Python 中一种非常强大的语法特性,它允许你在不改变函数代码的情况下,动态地增加功能。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。下面是 Python 装饰器的基本语法:
def decorator_function(original_function):
def wrapper_function(*args, **kwargs):
# 在调用原始函数之前的任何操作
print("Do something before the original function")
result = original_function(*args, **kwargs) # 调用原始函数
# 在调用原始函数之后的任何操作
print("Do something after the original function")
return result
return wrapper_function
@decorator_function
def some_function():
print("Original function")
some_function()
这段代码中,decorator_function
是一个装饰器函数,它接受一个原始函数 original_function
作为参数,并返回一个内部函数 wrapper_function
。在 wrapper_function
内部,我们可以添加一些额外的功能,然后调用原始函数。
@decorator_function
这行代码就是应用装饰器的语法糖。它等同于 some_function = decorator_function(some_function)
,它告诉 Python 使用 decorator_function
来装饰 some_function
。
当你调用 some_function()
时,实际上是调用了 wrapper_function()
,而 wrapper_function()
又会调用原始的 some_function()
,并且在调用前后做一些额外的事情。
装饰器也可以带参数,这样就可以根据不同的参数定制装饰器的行为。
上面的内容是关于函数装饰的,我们还有类装饰的语法。
标签:function,函数,Python,some,笔记,wrapper,装饰,decorator From: https://www.cnblogs.com/yspm/p/18185132/PythonDecoratorNotes